java - 我在哪里可以找到 "reference barcodes"来验证条码库输出?

标签 java .net delphi barcode code128

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

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

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

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

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

最佳答案

对于 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 表示相同的数据,但这同样会为您提供更长的条形码。

以两个在线生成器为例:

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

alt text

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

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

关于java - 我在哪里可以找到 "reference barcodes"来验证条码库输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2482630/

相关文章:

c# - .NET 中的 CoCreateInstance 完全匹配?

delphi - "array of double"和 TDoubleDynArray 之间的区别

java - 如何在 CXF 的 READ 阶段从 SoapMessage 中提取请求的操作名称?

java - 内部类太多?

java - 使用Java保存日期: This field is not a valid date

Java - 错误 : A JNI error has occurred, ... 在线程 "main"java.lang.UnsupportedClassVersionError 中:

.net - ToString() 和调试器的字符串可视化工具

c# - RabbitMQ 公开的公钥中包含的证书链

delphi - 在运行时通过字体基线垂直调整两个控件

android - 使用 Delphi 以编程方式检查 SD 卡是否可用