← 全部文章
条码知识

Code 128 条码怎么生成:A/B/C 子集、校验位、最小尺寸与 Code 39 对比

搜「条码生成器」的人,十有八九最后用的是 Code 128。它能编字母数字、密度高、扫描枪都认,但子集、校验位、尺寸这几个点不清楚,打出来的码照样扫不出。

一、Code 128 是什么,为什么内部管理都用它

Code 128 是一种高密度一维条码,能编 128 个 ASCII 字符(大小写字母、数字、常用符号和控制符),长度不限,自带校验位。仓库货位、资产编号、生产批次、物流箱码、快递面单上的运单号,基本都是它。

它和零售商品上的 EAN-13 最大的区别是不需要申请:EAN-13 的前缀是中国物品编码中心分配的厂商识别代码,自己编的 69 码上不了商超系统;Code 128 编的是你自己的编号,只要你的系统认得就行。

二、A、B、C 三个子集怎么选

子集能编什么适合宽度
A大写字母、数字、控制字符(回车、制表符等)需要嵌控制符的老系统接口一般
B大小写字母、数字、常用符号含小写字母或符号的编号,如 sku-2026a一般
C两位数字为一组纯数字、偶数位,如订单号、流水号最窄,同样数字比 A/B 省一半

实际使用不用自己选。生成工具会按内容自动挑最省空间的子集,遇到数字段自动切到 C,遇到字母切回 B。你只要记住一条:纯数字编号尽量做成偶数位,比如 8 位而不是 7 位,C 子集能整段压缩,条码明显更短。

三、校验位:由工具算,不进你的编号

Code 128 末尾有一个校验符号,按「起始符 + 每个符号值 × 位置」求和再对 103 取模得到。它不是你编号的一部分——扫描枪读出来的内容里没有它,Excel 里也不用留这一位。这点和 EAN-13 不同:EAN-13 的第 13 位校验位是编码本体,印错了扫描枪直接拒读,所以 EAN-13 要先过校验位计算器

四、尺寸:条宽、高度、静区三个数

参数要求为什么
最窄条宽 X≥ 3 个打印点:300 DPI 时 ≥ 0.25 mm,203 DPI 时 ≥ 0.375 mm少于 3 个点,打印机没法稳定表达条空比,细条糊成一片
高度≥ 内容长度的 15%,且 ≥ 6 mm太矮的码,手持枪扫描线容易扫出条码范围
静区左右各 ≥ 10X,实务上留 3 mm 以上静区被文字、边框或标签边缘挤占是扫不出的头号原因
总长度= (11 × 符号数 + 13) × X超过标签宽度时优先缩短编号、用 C 子集,而不是压缩 X

一个 12 位纯数字的 Code 128,C 子集下共 6 个数据符号 + 起始 + 校验 + 终止,宽度约 (11×8+13)×0.25 ≈ 25 mm,加静区 31 mm,放在 40×30 mm 的卷标上刚好。换成 Code 39 同样内容要 50 mm 以上。

五、Code 128、Code 39、GS1-128、EAN-13 怎么取舍

码制内容要不要申请典型用途
Code 128全 ASCII,长度不限仓库货位、资产、批次、内部 SKU
Code 3943 个字符(大写、数字、少量符号),无校验位只认 Code 39 的老设备、军工/汽车行业图纸要求
GS1-128Code 128 + FNC1 + 应用标识符 (01)(10)(17)前缀要申请带批号、效期、数量的物流标签、医院耗材
EAN-1313 位数字是,向中国物品编码中心零售流通商品

一句话:自己系统内部用 Code 128;要和上下游按 GS1 规则交换批号效期用 GS1-128;商品要上货架用 EAN-13;Code 39 只在被要求时用。

六、打印后扫不出,按这个顺序查

  1. 静区——条码两侧是否紧贴边框或文字。
  2. 缩放——PDF 打印是否选了「实际大小」,任何「适合页面」都会改变条空比。
  3. 分辨率——是不是用截图或 72 DPI 图片打的;条码应从 SVG 或 300 DPI PNG 输出。
  4. 浓度——热转印浓度过高条纹洇开、过低断线,打两张对比。
  5. 内容——编号里有没有全角字符或首尾空格,Excel 复制时常带进来。

常见问题

Code 128 的 A、B、C 子集需要自己选吗?

不需要。条码生成器会按内容自动切换:纯数字且位数为偶数时用 C 子集(两位数字压成一个符号,最省宽度),含小写字母用 B,含控制字符用 A,中途还能切换。只在对接特定扫描枪或 ERP 要求固定子集时才手动指定。

Code 128 的校验位要自己算吗?

不用。校验位是按模 103 加权求和得到的一个符号,任何合格的条码生成工具都会自动附在末尾,扫描枪读出时也会自动去掉,你的编码里不含它。只有 EAN-13、ITF-14 这类 GS1 码制的校验位属于编码本身,才需要用校验位计算器验证。

Code 128 最小能做多小?

取决于打印分辨率。最窄条(X 尺寸)至少要 3 个点:300 DPI 一个点约 0.085 mm,X ≥ 0.25 mm;203 DPI 一个点 0.125 mm,X ≥ 0.375 mm。高度一般不低于内容长度的 15% 且不低于 6 mm,太矮的码用手持枪不好对准。左右各留 10 倍 X 尺寸的空白静区。

内部管理用 Code 128 还是 Code 39?

新项目一律 Code 128:同样内容比 Code 39 窄约 30%,自带校验位,支持全 ASCII。只有对接只认 Code 39 的老设备、或者客户图纸明确要求时才用 Code 39。零售流通商品用 EAN-13,外箱用 ITF-14,带批号效期的物流标签用 GS1-128。

相关工具与文章

文中参数为常见生产场景的经验值,具体设备与材料批次之间存在差异,批量生产前请先小样试打。需要工厂直接报价可在线询价,1 个工作日内回复。