从构造原理说起,条形码宽度的调整问题,主要涉及一维条码与打印介质之间的适配性。要理解其调整限制,需从一维条码的构造原理入手。
一维条形码由反射率差异显著的黑条(条)和白条(空)排列组成,通过宽窄不一的条空组合表达信息。其中,最窄条的宽度称为“最小单元宽度”,该宽度通常由打印机的分辨率(即打印头在单位长度内可打印的点数,如每英寸点数DPI或每毫米点数DPMM)决定,常以 mil(1 mil = 0.0254 mm)为单位表示。例如:
- 使用 305 DPI 的打印机时,其最小单元宽度约为 0.08 mm;
- 使用 203 DPI 的打印机时,最小单元宽度约为 0.125 mm。
常见的条码打印软件在调节“最小单元宽度”时,无法实现连续调整,而是以整数倍的最小打印点距为单位进行阶梯式调整。以 305 DPI 的打印机为例,其分辨率约为 12 点/毫米,每个点的宽度约为 0.0833 mm(约等于 0.08 mm)。因此,调整最小单元宽度时只能以整数点递增,例如:
- 1 点:约 0.08 mm
- 2 点:约 0.17 mm
- 3 点:约 0.25 mm
由此可见,条码宽度的调整并非任意连续,而是受限于打印设备的物理精度和编码规则。这种离散化的调整方式既保证了条码的可识别性,也确保了打印系统能够准确生成符合标准的结构。
下面使用SATO CL412E(300dpi)条码打印机和Bartender条码打印软件来打印code39码,在“最小单元宽度”尺寸调节时,只能选择0.08mm、0.17mm、0.25mm、0.33mm等
由于“最小单元宽度”的调整方法,导致了条形码的宽度不能够连续进行调整,而是跳跃式的调整。
根据打印机分辨率的不同,“最小单元宽度”是有所不同的,203dpi分辨率的打印机,“最小单元宽度”是0.125mm;300dpi分辨率的打印机,“最小单元宽度”是0.08mm;406pdi分辨率的打印机,“最小单元宽度”是0.06mm;609dpi分辨率的打印机,“最小单元宽度”是0.04mm;所以采用不同分辨率的打印机打印出来的一维条形码的宽度都是不相同的。甚至同一分辨率但机器品牌不一样的打印机打印出来的一维条形码宽度也是不同的(每毫米的点数略有不同)。
为了协调一维条码与介质载体之间的相融度,在条形码内容相同时,减小条形码宽度的最有效方法是采用高分辨率的条码打印机(带来成本的上涨)。
至于由于条码打印软件选择的不同而产生条形码宽度不同的问题,也是存在的。
采用Zebra ZM400(300dpi)条码打印机打印“最小单元宽度”为0.13mm,长宽比为2.0的Code39-全ASCII码,下面采用三款条码打印软件,来分别展示一下条形码的宽度(条码打印软件造成宽度的不同,大都是由于软件所使用不同驱动程序造成的)。
① Zebra ZDesigner条码打印软件
条形码内容12345678,条形码高度5mm。
② Seagull Bartender条码打印软件
条形码内容12345678,条形码高度5mm。
③ Teklynx LabelView条码打印软件
条形码内容12345678,条形码高度5mm。
显然通过不同的三款软件,采用相同的条形码设置打印出来的条形码宽度也是有差别的。
同一款条码打印软件,条形码设置都相同,打印机的分辨率也相同,但条形码的宽度也可能会不一样。
下面采用Seagull Bartender条码打印软件,通过SATO CL412E(300dpi)和Citizen CLP-631(300dpi)进行相同条码设置的条形码进行打印。
① Citizen CLP-631条码打印机
条形码内容12345678,条形码高度5mm。
② SATO CL412E条码打印机
条形码内容12345678,条形码高度5mm。
上述两张图片中条形码的宽度显然是不同的,虽然差距只在毫米级。