【问题标题】:Where can I find "reference barcodes" to verify barcode library output?我在哪里可以找到“参考条码”来验证条码库输出?
【发布时间】:2011-01-29 18:30:21
【问题描述】:

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

我们在互联网上发现了不同条形码库和free online barcode generators 呈现不同条形码的情况。例如,新版本的 Delphi 报告库将 Code128 中的非数字字符输出为“0”,或者在文本区域中直接跳过它们。在进行迁移之前,我们想检查这些更改是否是由新库中的错误实现引起的,以便我们可以将此作为错误报告给作者。

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

目前我查到的在线资源有:

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

【问题讨论】:

  • 有多种工具可以为您生成条形码;它们还不够吗?
  • 我们发现它们为相同的输入值和相同的条码类型生成不同的条码图像 - 并且不知道哪个是正确的。
  • 您能列出您发现的一些差异吗?我一点也不怀疑你的发现,但有一些具体的东西可以分析是有帮助的。
  • Wolfram|Alpha 也可以生成条形码。见wolframalpha.com/input/?i=barcode+123456789
  • @Andreas 你可以直接指定代码128:wolframalpha.com/input/?i=code+128+ABC123

标签: java .net delphi barcode code128


【解决方案1】:

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

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

取两个在线生成器:

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

在 IDAutomation 上,Auto 是默认值,而 A 是 Barcodes-Inc 上的默认值。两者都是正确的,您只需要在比较输出时小心选择了哪个子集。我还推荐在开发中使用条形码阅读器来测试输出。此外,请参阅this page 以比较不同子集与 ASCII 值。我还发现grandzebu.net 很有用,它有一个免费的 Code128 字体,你也可以使用。

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

【讨论】:

  • IDAutomation 和 Barcodesinc 显示不同的结果:例如,Barcodesinc 在 Code128 中不接受逗号,而 IDAutomation 接受。 en.wikipedia.org/wiki/Code_128 表示 Code128 支持逗号。
【解决方案2】:

为什么不直接扫描它们,看看结果如何?

【讨论】:

  • 这只会增加更多的“变量”:扫描仪可以有不同的(错误)配置,例如自动添加/删除前导/尾随字符。
猜你喜欢
  • 2020-05-19
  • 2013-08-25
  • 2013-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 2015-12-30
相关资源
最近更新 更多