条码扫不出来的 12 个原因与排查顺序:静区、尺寸、颜色、打印分辨率、覆膜、曲面
手机能扫、扫码枪扫不出;屏幕上好好的、印出来不行;一批里有的能扫有的不能——三种症状对应的原因不一样。按最常见到最少见排 12 条,每条给判断方法和改法。
条码生成器每天被用几百次,但生成只是第一步。真正让人着急的是:码印出来了,扫码枪就是没反应,或者手机能扫、仓库的枪扫不了、超市收银台扫不了。这篇按"从最常见到最少见"的顺序列出 12 个原因,每一条给出怎么判断、怎么改,最后给一个 5 分钟的排查流程。原因几乎都出在生成、排版、印刷这三个环节,很少真的是扫码枪坏了。
先看症状:三种"扫不出"对应的方向不一样
| 症状 | 最可能的方向 | 先查 |
|---|---|---|
| 手机扫得出,扫码枪扫不出 | 静区不够、尺寸过小、条码类型枪没开、反光 | 第 1、2、8、10 条 |
| 屏幕上扫得出,印出来扫不出 | 打印分辨率与模块不匹配、油墨扩散、浓度、覆膜 | 第 5、6、10、11 条 |
| 整批时好时坏、有的能扫有的不能 | 可变数据长度变化、打印头磨损、材质反光不均、贴在曲面上 | 第 5、9、11、12 条 |
| 能扫,但读出来的号不对 / 系统查无此码 | 校验位错、数据录错、码制子集、扫码枪前后缀设置 | 第 7、8 条 |
1. 静区被压——排第一的原因
条码左右两侧必须留一段什么都没有的空白,叫静区(quiet zone)。扫码枪靠它判断"码从哪里开始、到哪里结束"。设计师为了排版紧凑把边框、文字、图案贴到条码旁边,是最常见的失败原因,而且肉眼看不出问题。
- EAN-13 / UPC-A:左侧 11 个模块、右侧 7 个模块(100% 放大率下约 3.6 mm 与 2.3 mm)。EAN-13 左下角的第一位数字印在静区里是允许的,它本身就是规范的一部分;右侧有的设计会加一个
>符号,作用就是提醒"这里到静区边界"。 - Code 128 / GS1-128 / Code 39:左右各至少 10 个模块(X 尺寸的 10 倍),GS1-128 要求不少于 10X 且不小于 2.54 mm 取大者。
- 二维码 / Data Matrix:QR 四周各 4 个模块,Data Matrix 四周各 1 个模块(GS1 应用建议放宽到 2–3 个)。
判断方法:用尺量条码两侧到最近的任何印刷元素(包括裁切边、刀线、色块边界)的距离。改法:在生成器里保留默认的静区,不要在设计软件里裁切条码图片的白边。我们的 条码生成器 导出的 SVG 已经带足静区,直接放进设计稿即可。
2. 尺寸太小——放大率低于 80%
商品条码有一个"标称尺寸"(100%),EAN-13 是 37.29 × 25.93 mm,对应模块宽度 X = 0.330 mm。GS1 允许在 80%–200% 之间缩放,也就是 X 在 0.264–0.660 mm。零售 POS 场景(超市收银)低于 80% 就不合规;物流箱码 ITF-14 与 GS1-128 要求更大,X 通常不小于 0.495 mm。
低于下限的典型场景:包装太小、把条码"塞进"一个预留区域、或者设计软件里等比缩小了整张标签。判断:量条码总宽,EAN-13 低于 29.8 mm(80%)就有问题。改法:优先放大,放不下再考虑截短高度(第 3 条)而不是缩小宽度,或改用 EAN-8 / 二维码。具体各码制的最小尺寸见 Code 128 生成指南 与 EAN-13 全流程。
3. 条高截得太短
条高(bar height)不影响单次手持扫描,但决定了全向扫描能不能成功——超市的平台式扫描器从多个角度同时射出光线,条高不够时光线扫不完整个码。EAN-13 标称条高 22.85 mm,行业上把截短到标称高度以下叫"truncation",GS1 不推荐用于零售。实践中截短到 2/3 以下,收银台失败率就明显上升,仓库手持枪则基本不受影响。
4. 颜色与反差:红色条码扫不出,不是玄学
大多数一维扫码枪用红光(约 650 nm)照射。红光打在红色油墨上会被反射,扫码枪"看到"的红色条与白色底一样亮,整个码等于不存在。同理,橙、黄、浅粉的条也不行;黑、深蓝、深绿的条可以。底色反过来:白、黄、橙、红都是可用的底色,黑、深蓝、深绿的底不行。
| 条的颜色 | 底的颜色 | 结果 |
|---|---|---|
| 黑 / 深蓝 / 深绿 | 白 / 黄 / 橙 / 浅红 | 可以 |
| 红 / 橙 / 黄 / 金 | 白 | 红光扫码枪扫不出(手机可能能扫) |
| 黑 | 深蓝 / 深绿 / 黑 | 反差不足,扫不出 |
| 任何 | 金属 / 镜面 / 高光 | 反光导致读取不稳 |
反差量化指标叫 PCS 或"符号反差",检测仪按 ISO/IEC 15416 打分。简单判断:拿一张红色透明片盖在条码上看,条与底还分得清就能扫。设计上,条码区域永远单独用黑色印在浅色底上,不要让条码随主色系走。
5. 打印分辨率与模块宽度不是整数倍
这是"屏幕上完美、打印机打出来就不行"的头号原因。热敏 / 热转印打印机的打印头由一排点组成,203 dpi 的一个点是 0.125 mm,300 dpi 是 0.0847 mm。模块宽度 X 必须是一个点的整数倍:203 dpi 上 X 只能是 0.125、0.25、0.375、0.5 mm……如果你在软件里设 X = 0.33 mm(EAN-13 的标称值),打印机没法打出 2.64 个点,只能有的条打 2 个点、有的打 3 个点,条宽误差瞬间超标。
改法:在标签软件里按"点数"而不是"毫米"设条宽——203 dpi 用 2 点或 3 点,300 dpi 用 3 点或 4 点;或者用生成器输出的 SVG 矢量并按整数倍缩放。EAN-13 在 203 dpi 打印机上的常规做法是 X = 0.375 mm(3 点,对应放大率约 114%)。
6. 油墨扩散:印刷把条印粗了
柔印、胶印、丝印都有油墨向外渗的现象,条会比设计稿粗,空会变窄,专业上叫条宽增量(bar width gain)。印刷厂会在制版时做条宽缩减(BWR)补偿——把条预先做细一点,印出来正好。判断:用检测仪看"可译码度(decodability)"评分,或者放大镜下看条边缘是否毛糙、空是否被填。改法:告诉印刷厂这是条码、要做 BWR;用生成器时不要自己把线条加粗"以防印不清"。
7. 校验位错、数据录错
能扫出但"系统查无此码",或者扫码枪在某些码上直接不响应(校验失败时枪会拒读),多数是数据本身错了。EAN-13 最后一位是校验位,手动改了前 12 位而没重算校验位,码就作废;Code 128 在生成器里是自动算的,手动拼的就容易错。用 GS1 校验位计算器 核对,从 Excel 批量生成时确认公式列没有被当作文本。批量场景见 Excel 批量生成条码标签。
8. 码制不对,或者扫码枪没开这个码制
- 一维激光枪扫不了二维码。QR、Data Matrix、PDF417 需要影像式(二维)扫码枪,激光枪永远扫不出——这是最容易被误判成"码有问题"的情况。
- 扫码枪出厂默认关闭了一些码制:ITF-14、Code 93、GS1 DataBar、Codabar 常见被禁用;Code 39 的"全 ASCII 模式"默认关闭,含小写字母的 Code 39 就扫不出。翻扫码枪说明书里的"设置条码"打开即可。
- GS1-128 的 FNC1 起始符、Code 128 的子集切换,用错了会导致读出的数据多字符或少字符。规则见 Code 128 指南。
9. 贴在曲面上:方向错了
条码贴在瓶子、罐子、管材这类圆柱面上,条的方向要和圆柱轴线平行(行业叫"栅栏式",picket fence),这样扫码枪一条光线扫过时每根条都在同一深度。如果条与轴线垂直("梯子式",ladder),光线会绕着曲面走,两端的条离扫码枪远、变形失焦。直径越小问题越严重;GS1 建议直径小于约 60 mm 时优先栅栏式,并且缩短条码宽度。
10. 覆膜反光与透明材质
亮膜、光油、PET 透明标签会产生镜面反射,扫码枪在垂直角度下看到的是一片白光。判断:把标签倾斜 15° 左右再扫,能扫出就是反光问题。改法:条码区域改哑膜或局部不上光;透明材质要先印一层白墨做底再印条码——透明标签直接印黑条贴在深色瓶子上,等于黑条配黑底。材质与工艺的选择见 颜色控制 与 表面工艺怎么选。
11. 热敏 / 热转印打印质量:浓度、打印头、碳带
- 浓度太高:条向外晕开,空被填,读出来的可能是错的数字;浓度太低:条发灰、断线。先从中间档往两边调,每次一档。
- 打印头有坏点:整卷标签在同一位置出现一条贯穿的白线,条码被"切"开。打印一张全黑测试页,白线位置就是坏点。
- 碳带不匹配:蜡基碳带印在 PET 或合成纸上附着差,一擦就花,条码边缘掉墨。材质与碳带的搭配见 碳带三大类怎么选。
- 打印速度过快:条边缘拖影。降一档速度通常立竿见影。
12. 磨损、污染、折痕与扫描角度
热敏纸暴晒后褪色、外箱条码被胶带压皱、条码贴在箱子折缝上,这些都是使用环节的问题,没有设计上的解法,只能选耐用的材质(三防热敏、覆膜、合成纸)并规定贴标位置避开折缝。扫描角度也有讲究:不要完全垂直扫,垂直时镜面反射最强,倾斜 10–15° 反而更容易读。
5 分钟排查流程
- 先用手机扫。手机扫不出 → 大概率是数据或码制问题(第 7、8 条),或者码本身印坏了(第 6、11 条)。手机扫得出 → 往下走。
- 量静区和总宽。两侧空白不够、EAN-13 总宽小于 29.8 mm,直接改(第 1、2 条)。
- 看颜色。条不是黑/深色、底不是浅色、有亮膜反光 → 第 4、10 条。
- 看印刷方式。热敏/热转印打的 → 查 X 是否整数点、浓度、打印头(第 5、11 条);印刷厂印的 → 问是否做了 BWR(第 6 条)。
- 看贴的位置。曲面 → 第 9 条;折缝、被胶带压 → 第 12 条。
- 批量出货前,送检。按 ISO/IEC 15416 用检测仪评级,零售条码要求至少 C 级,多数大客户与平台要求 B 级以上。检测仪能同时给出反差、可译码度、条宽误差,比逐条"用枪试"可靠得多。
参考资料
本文依据以下一手资料整理,实际操作以现行有效版本为准。
常见问题
为什么手机能扫,扫码枪扫不出来?
手机有连续对焦、多帧合成和很强的算法容错,静区不够、尺寸偏小、轻微反光都能扫出;工业扫码枪是单帧硬解,对静区、反差、条宽误差严格得多。手机能扫只说明数据没错,不代表条码合规。按静区、尺寸、颜色、反光的顺序查。
红色的条码为什么扫不出来?
一维扫码枪用红光照射,红色油墨反射红光,在扫码枪眼里红条和白底一样亮,整个码等于不存在。橙、黄、金色的条同理。条必须是黑、深蓝或深绿等深色,底可以是白、黄、橙甚至红。
203 dpi 打印机打 EAN-13 应该设多宽?
203 dpi 一个点是 0.125 mm,模块宽度必须是整数个点:2 点 = 0.25 mm(放大率约 76%,低于零售下限)、3 点 = 0.375 mm(约 114%,常规选择)。不要直接设 0.33 mm 的标称值,打印机打不出 2.64 个点,条宽误差会超标。
条码贴在瓶子上扫不出来怎么办?
把条码方向改成与瓶身轴线平行(条竖着排、像栅栏),不要横向绕着瓶子;直径小于约 60 mm 时优先这样排并适当缩短条码总宽。透明标签要先印白墨底再印条码,亮膜改哑膜或条码区域不上光。
条码出厂前要怎么检验?
用符合 ISO/IEC 15416 的条码检测仪评级,零售商品条码至少 C 级,多数零售商与电商平台要求 B 级以上。检测仪给出反差、可译码度、条宽误差等分项,能定位到具体是哪一环出了问题。用扫码枪"扫一下能出"不等于合格。