在哪里可以找到“参考条形码”来验证条形码库输出?

2022-09-04 22:01:20

这个问题不是关于“最佳”条形码库推荐,我们在不同的平台上使用各种产品,并且需要一种简单的方法来验证给定的条形码是否正确(根据其规格)。

我们发现,互联网上不同的条形码库和免费的在线条形码生成器以不同的方式呈现条形码的情况。例如,Delphi 报告库的新版本在 Code128 中将非数字字符输出为“0”,或者只是在文本区域中跳过它们。在进行迁移之前,我们希望检查这些更改是否是由新库中的损坏实现引起的,以便我们可以将其作为错误报告给作者。

我们主要需要带有A / B / C子代码的Code128和UCC / EAN-128。

到目前为止,我检查的在线资源是:

它们也显示不同的结果,例如支持逗号或加号等字符,至少在人类可读的文本中。


答案 1

对于 Code128,没有一个正确的答案。如果使用 Code128-A,则可以获得与 Code128-C 不同的结果。结果,我的意思是它看起来如何。以“803150”为例。在 Code128-A 中,您需要 6 个字符(+ 开始、校验和、停止)来表示此数字。Code128-C 仅由数字组成,因此您可以将两位数字压缩为一个字符。因此,您只需要3个字符(+开始,校验和,停止)来表示相同的数字。条形码看起来会有所不同(在这种情况下,A更长),但是如果您扫描它们,两者都会给出正确的数字。

此外,Code128 不需要只是 A、B 或 C。您实际上可以组合不同的子集。这在“US123457890”等情况下很常见,其中Code128-A或B用于“US”,Code128-C用于其余数字。这有时被称为Code-128 Auto,或简称Code-128。结果是宽度方面的“压缩”条形码。您可以使用A / B表示相同的数据,但这同样会为您提供更长的条形码。

以两个在线生成器为例:

我推荐第一个,您可以在其中选择Auto / A / B / C。下面是一个示例图像,说明了这些差异:

alt text

在 IDAutomation 上,Auto 是默认的,而条形码公司的 A 是默认值。两者都是正确的,您只需要在比较输出时注意您选择的子集。我还建议在开发中使用条形码阅读器来测试输出。此外,请参阅此页面,了解不同子集与 ASCII 值的比较。我还发现 grandzebu.net 很有用,它也有一个免费的Code128字体,你也可以使用。

听起来你的Delphi库总是使用Code128-C,因为它只能表示这个子集中的数字。


答案 2

为什么不扫描它们,看看有什么回来?


推荐