条码扫不出来的 8 个原因与排查顺序
条码扫不出来,多数时候不是扫描枪坏了,而是标签本身有一处不合规:静区被文字挤掉、条码缩到 20mm 宽、打印时被缩放了 95%、贴在反光的 PET 膜上。这类问题肉眼看不出,却会让整批货在收货口卡住。本文把最常见的 8 个原因按发生概率排成一条排查链,每条给出判断方法和具体数值(毫米、位数、DPI),店主、仓管、质检员从上往下查,一般 10 分钟内能定位。排查前先抽 5 张扫:全不行看第 1~5 条,零星不行看第 6~7 条,换把枪就好看第 8 条。
原因 1:静区不足——最常见,也最容易被忽略
静区是条码左右两侧必须留空的白色区域,扫描枪靠它判断「条码从哪里开始、到哪里结束」。Code 128 规范要求两侧各留至少 10 个模块的空白;EAN-13 左侧 11 个模块、右侧 7 个模块。按常见的 0.33mm 模块宽度算,Code 128 两侧各要 3.3mm 以上,实际设计建议留 5mm。
静区被吃掉的典型场景:条码紧贴标签边缘、旁边紧挨一列文字或一条竖线、标签四周有黑色边框。扫描枪会把挨着的黑色当成条码的一部分,解码失败。判断方法:量条码最外侧一根竖条到最近的黑色内容(含标签边缘)的距离,小于 3mm 就是它。
- 静区里不能有任何东西,包括浅灰底纹、边框线、装饰图案
- 条码下方的可读数字不算侵占静区,左右两侧的文字算
- 标签裁切偏移 1~2mm 是常态,静区要再留余量
原因 2:条码太小
条码越窄,单根竖条越细,打印机和扫描枪的误差占比就越大。KuaiLabel 校验器的下限是宽 25mm × 高 8mm(COD-02 规则):低于 25mm 宽,一段 10 位左右的 Code 128 每个模块会细到 0.2mm 以下,203 DPI 热敏打印机(每点 0.125mm)画不准;低于 8mm 高,扫描枪的光线稍微倾斜就扫不到完整的一行。
EAN-13 有自己的标准尺寸:100% 放大率是 37.29mm × 25.93mm,允许缩到 80%(约 29.8mm 宽)。零售扫描器对 80% 以下的 EAN 码识读率明显下降。判断方法:量条码本体(不含静区),宽 <25mm 或高 <8mm 就先放大再谈其他。
原因 3:打印时被缩放了
设计稿里 30mm 宽的条码,打印出来变成 28.5mm,往往是驱动里勾了「适应页面」或「缩放到 95%」。缩放会让每个模块变成非整数个打印点,打印机只能四舍五入,粗细条的比例就乱了。Code 128 靠 1:2:3:4 四种宽度区分符号,比例一乱就解不出。热敏机尤其敏感:203 DPI 下模块宽 0.33mm 本来就是 2.64 个点,再缩 5% 就彻底对不齐。
判断方法:打印一张,量条码实际宽度和设计值是否一致。差 0.5mm 以上就查驱动,把缩放改为 100%、关闭「适应纸张」,并确认驱动里的标签尺寸与实际卷纸一致。
原因 4:对比度不够、材质反光
扫描枪读的是反射光的差异,不是颜色。黑条白底最稳;深蓝、深绿条多数扫描枪也能读;红、橙、黄色的条几乎读不出,因为常见的红光扫描枪看红色和看白色一样亮。反过来,红色、黄色底配黑条是可以的。
材质方面:透明标签贴在深色瓶子上、条码印在银色 PET 或镀铝膜上、覆了亮膜的标签,都会因反光或底色不白而扫不出。透明或银色材质要先印一层白色打底。热敏纸打印过浅也算对比度问题:浓度设低、打印头老化、热敏纸不匹配,条会发灰。KuaiLabel 校验器会拦前景色太浅的条码(COD-04 规则),打印浓度则要在打印机上调。
- 条用黑色或深色,底用白色或浅色,不要做「白条黑底」
- 亮面覆膜的标签,扫描枪斜 15° 左右扫可以避开反光
- 热敏标签避光避热存放,发黄发黑后对比度会下降
原因 5:内容不符合码制规则
两种最常用的一维码规则完全不同。EAN-13 固定 13 位数字,最后一位是校验位,由前 12 位按「奇数位 ×1、偶数位 ×3 求和,补到 10 的整数倍」算出。手工输入 13 位或从别的系统复制时改了一位,校验位对不上,扫描枪会直接拒读——不显示错误,就是没反应。国内正式销售的商品条码要向中国物品编码中心申请厂商识别代码,前缀 690~699。
Code 128 没有位数限制,可以编数字、大小写字母和常见符号,但只能编 ASCII 字符:中文、全角标点、中文空格都编不进去。KuaiLabel 的一维码用的就是 Code 128,内容含中文会在校验时报 COD-01。另一个常见坑是内容首尾带了看不见的空格或换行,从 Excel 复制过来时尤其多。判断方法:逐字符核对,EAN-13 用 GS1 官网的计算器算一下校验位,Code 128 检查中文和首尾空白。
原因 6:条码下方没有可读数字
条码下面那行数字不是装饰。扫描枪读不出时,收银员或仓管可以手工输入,业务不至于停下;对账时也能肉眼核对内容。EAN-13 规范要求必须印可读数字;Code 128 不强制,但仓储物流场景都建议印。
可读数字用 OCR-B 或普通无衬线字体都可以,字号不小于 6pt,紧贴条码下方,和条码之间留 0.5~1mm。不要放在条码左右两侧,会吃掉静区。
原因 7、8:打印头耗材,以及扫描枪本身
只是零星几张扫不出,看条码上有没有贯穿整个高度的白线:那是打印头某个点烧坏或粘了纸屑,每张标签同一位置留下一条细白缝,正好把某根竖条切成两半。用无水酒精棉片擦打印头,擦完还有白线就得换打印头。
碳带打印机还要检查碳带和标签材质是否匹配:蜡基碳带印在 PET 上一蹭就掉,树脂碳带印在普通铜版纸上附着不牢。条上有掉墨、划痕,扫描枪就会把它当成空白。
标签排除完了再看扫描枪。很多扫描枪出厂只开启了 EAN/UPC,Code 128、Code 39 要扫设置手册上的条码开启。有的枪要求 EAN 码必须带附加码,也会导致部分码不读。使用距离也有讲究:普通激光枪和 CCD 枪的最佳距离是 5~25cm,条码越小要越近;扫描线要横跨整个条码包括两侧静区,贴着扫反而不行,光斑太小盖不住。
- 扫一张确认能用的旧标签,能读说明枪没问题
- 看手册开启对应码制,恢复出厂设置是最快的办法
- 扫描线完整穿过条码和静区,保持 10cm 左右距离
在 KuaiLabel 里把问题挡在打印之前
上面 8 条里,前 5 条在设计阶段就能发现。KuaiLabel 的校验器在导出前会自动跑一遍规则:条码小于 25×8mm 报 COD-02,内容含中文报 COD-01,前景色太浅报 COD-04,距标签边缘不足 2mm 报 LAY-03,和其他元素重叠报 LAY-01。每条问题都带「一键修正」,会把条码放大到下限、往标签内挪到边距内,或把颜色改成纯黑。Code 128 的静区内置在渲染里:编码器在两侧各加 10 个模块空白,画布上的条码框已含静区,只要框不和别的元素重叠,静区就不会被吃掉。
从零做带条码的标签,直接从模板起步更省事:「商品价签」自带条码 + 可读数字 + 价格的标准布局,「SKU 标签」和「库存标签」是仓储用的 Code 128 版式,「FBA 标签」按亚马逊入库要求预设了条码尺寸和字号。打开模板、绑定数据源、批量导出,校验器会对每条记录单独检查条码内容。
常见问题
条码用手机能扫出来,扫描枪扫不出来是怎么回事?
手机是拍照后用算法解码,容错比扫描枪高很多。先查扫描枪有没有开启对应码制(Code 128 常默认关闭),再查静区和条码尺寸:手机能凑合读的小条码,激光枪往往不行。
EAN-13 条码最后一位怎么算?
前 12 位从左到右编号,奇数位数字相加,偶数位数字相加后乘 3,两者求和,用 10 减去和的个位数就是校验位(结果为 10 时取 0)。GS1 官网有在线计算器,批量数据建议在表格里用公式算好再导入。
热敏打印机打出来的条码为什么有点糊?
先看打印浓度是否过高,浓度太高会让条变粗、空变窄,比例失真;再检查打印速度,条码建议用中低速。条码宽度要是打印点的整数倍,203 DPI 下模块宽 0.375mm(3 个点)或 0.5mm(4 个点)最清晰。
条码最小可以做多小?
KuaiLabel 校验器的下限是 25mm 宽、8mm 高,这是热敏打印机能稳定输出、普通扫描枪能稳定识读的边界。EAN-13 另有规范尺寸,最小缩到 80% 即约 29.8×20.7mm。小于这些尺寸不是不能印,而是识读率会明显下降。
条码可以做成竖着的吗?
可以,旋转 90° 放置扫描枪竖着扫即可。但旋转后要重新检查静区,原来上下方向的文字会变成左右方向,容易侵占静区;热敏机在竖向条码上更容易因打印头坏点断条,建议高度加大到 12mm 以上。



