2010-03-20 61 views
13

这个问题不是关于'最好的'barcode图书馆推荐,我们在不同的平台上使用各种产品,并且需要一种简单的方法来验证给定的条形码是否正确(根据其规范)。我在哪里可以找到“参考条码”来验证条码库输出?

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

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

我检查迄今在线资源:

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

+0

有各种工具为您生成条形码;他们不够吗? – Joey 2010-03-20 10:36:20

+1

我们发现它们为相同的输入值和相同的条形码类型生成不同的条形码图像 - 并且不知道哪一个是正确的。 – mjn 2010-03-20 10:53:02

+0

你能列出你发现的一些差异吗?我根本不怀疑你的发现,但它有助于具体分析。 – polygenelubricants 2010-03-20 11:20:00

回答

11

对于Code128,没有一个正确的答案。如果您使用Code128-A,则可以获得与Code128-C不同的结果。结果我的意思是它看起来如何。以“803150”为例。在Code128-A中,你需要6个字符(+ start,checksum,stop)来表示这个数字。 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 http://i41.tinypic.com/17bwh3.gif

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

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

+0

IDAutomation和Barcodesinc显示不同的结果:例如,BarCodesinc在Code128中不接受逗号,而IDAutomation则接受逗号。 http://en.wikipedia.org/wiki/Code_128表示Code128支持逗号。 – mjn 2010-03-20 12:01:32

+0

确实,看起来像BarcodesInc上的一个bug。 – 2010-03-20 12:13:27

0

为什么不只是扫描它们,看看会发生什么?

+0

这只会增加更多'变量':扫描仪可以有不同的(错误)配置,例如自动添加/删除前导/尾随字符。 – mjn 2010-03-20 22:26:42

相关问题