高质量条码的生产需要从头到尾精确控制打印过程。在这里,我提供特定于 Code 128 的指南以及一般适用于线性条形码的附加指南。
代码128的优化
对于 Code 128 的通用用途没有强制规定的大小限制,但是 Code 128 在特定行业中的应用确实定义了此类限制。对于您的内部用途,实际上只有实际的限制,例如打印机的保真度和扫描仪的功能,将决定尺寸的上限和下限。
您应该确保数据可以在 Code 128 中尽可能紧凑地表示,因为这将减少所需的条形和空格元素数量,从而在调整符号大小时提供更大的灵活性。例如,使用纯数字数据将能够有效地使用双密度“模式 C”数字压缩。看这个答案 https://stackoverflow.com/a/31359916/2568535了解更多详情。
这就引出了一个问题:您是否可以从 SKU 中删除破折号,并在扫描符号后在应用程序中重新引入破折号?考虑带破折号和不带破折号的 SKU 的代码 128 的不同宽度,以了解其影响:
此外,必须在符号的两端保留至少十倍于 X 尺寸(窄条的宽度)的安静区域:
如上图所示,静区应被视为 Code 128 符号的组成部分。
线性条形码优化的一般指南
对于封闭式应用(您可以完全控制符号的打印和扫描),目标是最大化条形码的宽度,前提是它能够舒适地适合扫描仪的视野。
对于涉及拥有自己的设备和流程的多个贸易伙伴的开放应用(例如一般零售或物流),请确保打印符号的 X 尺寸和高度处于相关应用标准定义的最小和最大约束范围内。
在所有情况下,请避免抗锯齿,因为许多扫描仪执行边缘到相似边缘的测量,这种测量对于定义清晰、高对比度的边缘效果最佳。抗锯齿通常是由于放大尺寸过小的位图图像而产生的,但由于旨在改善常规图像中“锯齿”外观的功能而没有进行缩放,也可能会出现抗锯齿。
确保输出符号的预期 X 尺寸是打印机像素大小的整数倍尤其重要。如果不这样做,将导致元素(条和空格)宽度不稳定 - 原本具有相同宽度的元素可能会因一个打印点而有所不同。这是因为可用的 X 尺寸集仅由每个窄元素的打印点数决定,并且您无法将小数点分配给条。
Code 128 (ISO/IEC 15417) 规范对符号生成软件提出了以下要求:
用于在基于像素的打印机上创建条形码的图形软件
必须将每个条和空间精确缩放到像素间距
正在使用打印机。对于边缘到相似边缘可解码符号系统
像 Code 128 一样,组成每个符号字符的像素数
必须是模块数量的固定且恒定的整数倍
在符号字符中。
由此推论,物理符号大小必须根据打印机的点距以量子方式增长。因此,不可能满足使用每种型号打印机的每种应用所需的尺寸限制。对齐良好的符号不能简单地稍微大一点或小一点,以满足某些标称尺寸或最佳地填充所需的空间,同时保持正确地适合输出设备的物理打印特性。
例如,贸易项目上的 2D 符号的 GS1 通用规范“不在 POS、零售、分销或受监管的医疗保健中扫描”(SST 4) 定义了 X 尺寸的允许范围为 0.380 - 0.495mm。这可以通过定制 5 dpmm(每毫米点数)打印机通过在每个窄条上打印两个点来实现,但使用更常见的 8 dpmm 打印机完全无法实现,即使它是更高分辨率的设备:三个 0.125 毫米点将是矮小;四个 0.125mm 的点就显得过大了。
此外,在栅格化矢量路径描述时,必须确保原点与设备的点网格正确对齐。通过这种方式,您可以避免由于像素掠过而将原本具有相同宽度的条形栅格化为不同宽度,如下图所示,其中在不同的 X 坐标处渲染时,相同的线宽会渲染为不同的打印宽度:
如果不遵循上述建议,将会导致图像的某些条形变粗,如下图所示:
最左边的图像代表高分辨率印象;中间的图像代表渲染为低分辨率印象(按比例缩放)的相同符号,该符号已正确网格拟合并且将完美扫描,因为尽管分辨率较低,条形空间图案与最左边的图像相同;最右边的图像是相同的低分辨率印象,但在这种情况下,网格安装不正确,并且不会扫描,因为条形空间图案已损坏。
顺便说一句,请注意,当放大中间图像时(出于演示目的),抗锯齿仅应用于文本,而不应用于条形。如前所述,这对于确保为解码过程提供符号元素之间的准确距离至关重要。
对于某些打印过程,软件可能还需要通过将所有条的宽度减少一个小的固定量来补偿“打印增长”(由于过程中的墨水渗色和其他缺陷),同时保持精确的边缘到- 边缘间距。
ISO/IEC 15417 对后一个过程的描述如下:
设计的通用打印软件
为了支持多种打印机,应该为用户提供
调整 X 尺寸和条宽度增长或损失的能力。
条宽减小的使用应仅限于补偿打印过程中的物理缺陷,例如油墨羽化。根据技术的不同,条宽度调整的程度可能需要定期重新校准。条宽度减小不能充分补偿由于未正确对齐和网格安装图像描述而导致的像素掠过。
即使您完全遵循上述所有建议,某些设备和驱动程序包含的高级功能(超出常规的抗锯齿功能)可能会导致打印完美条形码符号的尝试失败,特别是当光栅化涉及缩放图像时,甚至按整数倍缩放时:
- 一些 RIP 可能会尝试保留线条的宽度,以确保线条艺术的均匀“厚度”,但在这样做时,它们将调整条宽度与空间宽度的相对比率。人眼很难用条形码观察到这种效应。它可能被认为是打印增长现象的一种变化,但其中条形受到某种统一比例因子而不是固定量的影响。
- 某些 RIP 可能会将某个区域内的高频规则线条视为一种阴影形式,然后尝试通过引入原始宽度的附加线条来在缩放时保持线条距离或完全替换来保留感知的灰度级别具有半色调网屏的区域内的线条。
总之,在目标设备的分辨率已知的情况下,生成具有实际可实现的 X 尺寸、良好网格拟合的源条形码图像,并且最好源图像像素或路径描述直接与设备点对齐,以便以避免对图像进行所有不必要的处理。每当打印系统的任何组件(硬件或软件)发生变化时,请务必重新验证打印的符号。
这个答案 https://stackoverflow.com/a/31814413/2568535演示了如果不遵循这些过程控制会发生什么情况。