我正在努力将 POS 系统集成到我的网站。所以我想生成条形码。我使用 SKU 作为数据字段来编码甲酸盐是XXXXX-XXX-XXX-XXX
.
X 是从 0 到 9 的数字,所以经过研究,我发现如果我错了,代码 128 是最好的纠正我。尺寸问题,物品上的标签是 2' x 3 1/2' 英寸,当我使用生成条形码barbecue
并调整图像大小时,扫描仪无法读取条形码。所以你能解释一下什么是尺寸限制,我能得到的最小尺寸是多少英寸。
高质量条码的生产需要对打印过程进行端到端的精确控制。在这里,我提供特定于 Code 128 的指南以及一般适用于线性条形码的指南。
代码128的优化
对 Code 128 的一般用途没有强制的规模限制,但是 Code 128 对特定行业的应用确实定义了此类限制。对于您的内部目的,实际上只有实际限制会决定尺寸上限和下限,例如打印机的保真度和扫描仪的功能。
您应该确保数据可以在 Code 128 中尽可能紧凑地表示,因为这将减少所需的条形和空间元素的数量,这将在调整符号大小时提供更大的灵活性。例如,通过使用纯数字数据将能够有效地使用双密度“模式 C”数字压缩。有关更多详细信息,请参阅此答案。
这就引出了一个问题,您是否可以从 SKU 中删除破折号,然后在扫描符号后在您的应用程序中重新引入?考虑一下带有和不带有破折号的 SKU 的 Code 128 的不同宽度,以了解其影响:
必须在符号的任一端保持至少十倍于 X 尺寸(窄条的宽度)的静区。如图所示,静区应被视为 Code 128 符号的组成部分。
线性条码优化的一般指南
打印符号时,您的目标应该是最大化条形码的宽度,前提是它可以舒适地适合扫描仪的视野,但要受到某些限制。
避免使用抗锯齿,因为扫描仪最适合使用清晰定义的高对比度边缘。
如果您使用的是低分辨率打印过程,那么确保输出符号的 X 尺寸是打印机像素大小的整数倍尤为重要。通过这种方式,您可以避免由于像素掠过而将具有相同宽度的线光栅化为不同宽度,如图所示。
对于某些打印过程,软件可能还需要通过将条的宽度减小一个小的固定量来补偿“打印增长”(由于过程中的墨水渗色和其他缺陷),同时保持准确的边距边缘间距。
Code 128 (ISO/IEC 15417) 的规范描述了后面的过程如下:
用于在基于像素的打印机上创建条形码的图形软件必须将每个条形码和空间精确地缩放到正在使用的打印机的像素间距。对于像 Code 128 这样的边缘到相似边缘可解码符号体系,组成每个符号字符的像素数量必须是符号字符中模块数量的固定且恒定的整数倍。// 旨在支持各种打印机的通用打印软件应为用户提供调整 X 尺寸和条宽增长或损失的能力。
这个答案演示了当不遵循这些过程控制时会发生什么。
简短的回答是为此目的,我将使用带有“Code 128”符号的免费和开源“Zint 条形码工作室”,并手动生成和检查我的网站所需的所有条形码图像。
更广泛的答案:有许多条码和许多可用的软件,但出于实际目的,有一些限制:
N2 几乎只剩下 Codabar、Code11、Code32、Code93、Code128、EAN/UPC、GS1 Databar 和 i2of5。所有 GS1 的东西都太新而且不可能——只有相对现代的扫描仪才支持它们。它还假定了特定的数据格式,并且对于某些实现和扫描仪,它可能会碰巧非常烦人。部分中文扫描仪型号不支持 Code93,一般比较少见。EAN/UPC 违反要求 N1。i2of5 代码没有开始/停止符号并且违反要求 N3。Codabar 和 Code 11 只能对数字和几个额外的字符进行编码,但能够使用自己的特殊格式将提供额外的保护以防止一些不相关的条形码,因此有助于 N3 的发展。
这就是为什么我认为 Code128 是目前最好的线性条形码。对于使用 90 年代初的非常陈旧和糟糕的扫描仪的情况,简单的 Code39 是一个不错的备份选项,可以使用一些免费的 TrueType 字体轻松生成。
一旦您决定使用 Code128,很高兴知道根据 ISO 15417 有 3 种代码变体,具体取决于您需要的符号范围。128A 的控制字符毫无用处,但使用 128C 原样或与 128B 部件适当混合可以提供更紧凑的条码(实际上,与我上面列出的所有其他条码相比,它是最紧凑的条码)。但与此同时,一些非常糟糕的扫描仪可能无法读取混合符号,并要求整个条形码为 128C(仅限数字对)或 128B(大小写字母和数字)。因此,尝试不同的软件,尝试一下并检查结果也很重要。
之后唯一要做的就是确保您具有高对比度(最好是白色背景上的黑线,一些扫描仪不读取反色条码),在条码周围保留一个像样干净的可用空间边距,打印得体大小的条形码,并保持所有计算机屏幕、标签和扫描头至少相对清洁。