Java 我在哪里可以找到;参考条形码“;验证条形码库输出?

Java 我在哪里可以找到;参考条形码“;验证条形码库输出?,java,.net,delphi,barcode,code128,Java,.net,Delphi,Barcode,Code128,这个问题与“最佳”库推荐无关,我们在不同的平台上使用不同的产品,需要一种简单的方法来验证给定的条形码是否正确(根据其规格) 我们发现,不同的条形码库和互联网上的条形码呈现方式不同。例如,Delphi reporting library的新版本将Code128中的非数字字符输出为“0”,或者在文本区域中跳过它们。在进行迁移之前,我们希望检查这些更改是否是由新库中的中断实现引起的,以便将其作为错误报告给作者 我们主要需要带A/B/C子代码的UCC/EAN-128和UCC/EAN-128 到目前为止,

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

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

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

到目前为止,我查看的在线资源包括:

  • (显示ABC123为0123,代码为128-C)
  • (不接受逗号)

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

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

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

以两台在线发电机为例:

我推荐第一个,您可以在自动/A/B/C之间进行选择。下面是一个示例图像,说明了不同之处:

在iAutomation上,Auto是默认值,而Barcodes-Inc上的A是默认值。两者都是正确的,在比较输出时,您只需注意选择的子集。我还建议在开发中使用条形码阅读器来测试输出。另外,请参阅,以获取不同子集与ASCII值的比较。我还发现它很有用,它有一个免费的Code128字体,你也可以使用


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

为什么不扫描它们并查看返回的内容?

有各种工具可以为您生成条形码;难道它们还不够吗?我们发现它们为相同的输入值和相同的条形码类型生成不同的条形码图像,并且不知道哪一个是正确的。你能列出一些你发现的差异吗?我一点也不怀疑你的发现,但它有助于具体分析。Wolfram | Alpha还可以生成条形码。请参见@Andreas您可以直接指定代码128:IDAutomation和Barcodesinc显示不同的结果:例如,Barcodesinc不接受代码128中的逗号,而IDAutomation接受。表示Code128中支持逗号。这只会添加更多“变量”:扫描仪可以有不同的(错误)配置,例如自动添加/删除前导/尾随字符。