有人做商品标签,Excel 里输好 6901234567892,全选改成条码字体,打印出来还是普通数字。问题不在字体本身,而是单元格用的还是宋体,或者数据里少了该有的起止符。

条码字体的原理不复杂:字体文件把每个数字画成黑白条纹,输入数字显示出来就是条码。常见的有 Code 39、Code 128、EAN-13 几类,字体多对应 Code 39,因为它规则简单,一个字符对应一组固定条纹。

Code 39 要手动加星号

用 Code 39 字体时,数据前后必须各加一个星号,写成 *ABC123*,扫码枪才能识别起始和结束。少了星号,扫出来是空的或者乱码。字母一般只支持大写,小写要先转换,这也是很多人贴上去扫不出的原因。

字体和生成器不是一回事

Code 128 密度高、能编码数字和大小写,但它带校验位,靠字体直接显示容易算错,多数情况用条码生成器出图片更稳。EAN-13 有固定的 13 位结构和校验位,超市商品码不能自己随便编,需要用生成工具算校验位。

打印环节最容易翻车

屏幕上看得到不等于扫得出。喷墨打印机分辨率不够,窄条糊在一起,扫码枪就认不出;热敏标签机一般 203dpi 起步,效果好些。打印时别缩放,保持 100%,条码左右留出空白区,术语叫静区,被裁掉也会扫不出。先打一张用手机扫码软件试,再批量打。

以 Excel 为例,先把字体文件装上:右键字体选安装,或者复制到 C:/Windows/Fonts。重启 Excel,输入数据,选中单元格,在字体下拉框里找到对应的条码字体,字号调到 24 以上,单元格格式设成文本,避免长数字变成科学计数法。扫不出来先看数据里有没有空格、字体是不是真的生效,再检查打印浓度。别把条形码字体设成加粗或者斜体,条纹宽度一变,扫码枪基本读不出来。手机屏幕和扫码枪对对比度的要求不一样,先拿扫码枪测。

如果是几十个标签,装个条形码字体在 Excel 里改最省事;量大批量、要 Code 128 或商品码,还是用专门的生成工具,别跟字体较劲。标签纸也要选对,普通 A4 纸打印的条码边角容易起毛,扫几次就花。