如何生成可靠扫描的小型高密度线性条形码?

时间:2016-03-23 06:20:17

标签: barcode code128

我正在努力将POS系统集成到我的网站。所以我想生成条形码。我使用SKU作为编码格式的数据字段是XXXXX-XXX-XXX-XXX

X是从0到9的数字所以在做研究后我发现如果我错了,代码128是最正确的。尺寸问题,商品上的标签是2'由3 1/2'英寸,当我使用barbecue生成条形码并调整图像大小时,扫描仪无法读取条形码。那么请你解释一下尺寸约束是什么,以及我可以用英寸得到的最小尺寸。

2 个答案:

答案 0 :(得分:5)

生产高质量的条形码要求从端到端精确控制印刷过程。

优化代码128

对Code 128的一般用途没有规定的规模限制,但Code 128对特定行业的具体应用将定义此类限制。对于您的内部目的,只有实际限制才能规定较小的尺寸限制,例如打印机的保真度和扫描仪的功能。

确保尽可能紧凑地在代码128中表示数据(例如,通过使用将由“模式C”进行双密度压缩的仅数字数据)将减少所需的条形和空格数量,在调整符号大小时将提供更大的灵活性。有关详细信息,请参阅this answer

从您的SKU中删除短划线是否可行,可能是在扫描后重新构建它们?考虑具有和不带破折号的SKU的Code 128s的不同宽度,以查看其影响:

Code 128 with dashes

Code 128 without dashes

必须在符号的任一端保持至少十倍于X尺寸(窄条宽度)的静区。如图所示,静区应被视为Code 128符号的组成部分。

Parts of a Code 128 symbol

通用线性条形码的优化

在对符号进行大小调整时,您的目标应该是最大化条形码的宽度,前提是它可以在扫描仪的视野范围内舒适地适应以下限制条件:

避免消除锯齿,如果您使用的是低分辨率打印过程,则确保输出符号的X维度是打印机像素大小的整数倍尤为重要。通过这种方式,您可以避免由于像素放牧而将栅格化宽度相同的线条放宽到不同宽度。

Pixel grazing

对于某些印刷工艺,软件也可能需要通过将钢筋宽度减少固定量来补偿油墨流失,同时保持精确的边缘到边缘间距。

Code 128(ISO / IEC 15417)的规范描述了后面的过程如下:

  

用于在基于像素的打印机上创建条形码的图形软件   必须将每个条和空间精确地缩放到像素间距   打印机正在使用。对于边缘到类似边缘可解码的符号系统   与Code 128一样,包含每个符号字符的像素数   必须是模块数量的固定且常数的整数倍   在符号字符中。 //设计的通用打印软件   支持广泛的打印机应该为用户提供   调整X尺寸和条宽增长或损失的能力。

This answer演示了未遵循这些流程控制时会发生什么。

答案 1 :(得分:0)

简短的回答是为此目的,我将使用带有“Code 128”符号系统的免费开源“Zint 条码工作室”,并手动生成和检查我的网站所需的所有条码图像。

更广泛的答案: 有许多条码和许多可用的软件,但在实际应用中存在一些限制:

  1. 您通常希望使用通用条码,而不是像 UPC/EAN 之类的特殊东西,也绝对不是您自己想出的东西。
  2. 您希望能够使用市场上最便宜、最丰富的二手主力扫描仪,这些扫描仪已经在任何至少有点现代化的仓库中可用。像霍尼韦尔 1250 甚至更便宜的东西。当 DataMatrix 之类的东西在密度、纠错潜力和额外功能方面都无法击败时,为什么还要费心去使用线性条形码。
  3. 您希望条形码尽可能防白痴,并尽可能地抵抗部分扫描或损坏的条形码扫描。

N2 只剩下 Codabar、Code11、Code32、Code93、Code128、EAN/UPC、GS1 Databar 和 i2of5。所有 GS1 的东西都太新了,不可能——只有相对现代的扫描仪支持它们。它还假定特定的数据格式,并且在某些实现和扫描器中,它可能会非常烦人。某些中文扫描仪型号不支持 Code93,并且通常比较少见。 EAN/UPC 违反要求 N1。 i2of5 代码没有开始/停止符号并且违反了要求 N3。 Codabar 和 Code 11 只能编码数字和几个额外的字符,但能够使用您自己的特殊格式将提供额外的保护,防止一些不相关的条形码,因此有助于 N3 的眼泪。在剩余的代码 Code39 和 Code128 中,第二个代码对损坏的线条具有更高的抵抗力,并且整体条码密度明显更高。

这就是为什么我认为 Code128 是目前最好的线性条码。对于使用 90 年代初期的非常老旧和蹩脚的扫描仪的情况,简单的 Code39 是一个不错的备份选项,可以使用一些免费的 TrueType 字体轻松生成。

一旦您决定使用 Code128,很高兴知道根据 ISO 15417,根据您需要的符号范围,有 3 种代码变体。 128A 的控制字符非常无用,但使用 128C 原样或与 128B 部件正确混合可以提供更紧凑的条码(实际上,与我上面列出的所有其他条码相比,这将是最紧凑的条码)。但与此同时,一些非常蹩脚的扫描仪可能无法读取混合符号,并要求整个条形码为 128C(仅限数字对)或 128B(大小写字母和数字)。因此,尝试不同的软件、尝试一下并检查结果也很重要。

之后唯一要做的就是确保您具有高对比度(最好是白底黑线,有些扫描仪无法读取颜色反转的条码),在条码周围保留一个干净的空白边距,打印大小合适的条码,并至少保持所有计算机屏幕、标签和扫描头相对清洁。