条形码生成器

在线生成 EAN-13、EAN-8、UPC-A、Code 39 与 Code 128 条形码。校验位自动计算,图片可下载 PNG,全部在浏览器本地完成。

EAN-13 可只填 12 位,末位校验位会自动算出并补齐。

使用说明

  1. 先选条码类型,再在「条码内容」里填入对应的数字或字符。
  2. EAN-13、EAN-8、UPC-A 只接受数字。Code 39 用大写字母、数字和 - . 空格 $ / + %。Code 128 支持 ASCII 32 到 127。
  3. 点击「生成条形码」,画布会画出条空,并在下方标出人可读文本。
  4. 校验位不用自己算:填 12 位会补出第 13 位,填满 13 位则会核对末位,不符会提示正确值。
  5. 确认无误后点「下载 PNG」保存图片,图片为白底黑条,可放大后印刷。

常见问题

EAN-13 的校验位是怎么算的?
从右往左数,奇数位乘 3、偶数位乘 1,求和后取 10 的补数。本工具自动完成这一步:填 12 位会补出第 13 位,填 13 位则核对末位,不符时直接提示正确值。
为什么 EAN-13 只填 12 位也能生成?
12 位是有效输入,工具按 GS1 规则算出校验位补成 13 位,再按标准编码。若你已有一位校验位,直接填 13 位即可,工具会校验它是否正确。
生成的条形码能直接印刷或扫码吗?
可以。EAN-13、EAN-8、UPC-A 按 GS1 通用规范编码。Code 39 用标准 43 字符表。Code 128 用 Code128B 与标准取模 103 校验。请按 1 比 1 以上比例印刷并保留两端静区。
Code 128 为什么只支持 ASCII 字符?
本工具使用 Code128B 字符集,覆盖 ASCII 32 到 127,即键盘上常见的字母、数字与符号。中文、日文等非 ASCII 字符无法用该字符集表示,会给出字符码提示。

使用步骤

  1. 选类型填内容

    在顶部选择条码类型,再输入对应内容。数字型条码只接受数字,Code 39 与 Code 128 接受字母和符号。

  2. 核对条码类型

    EAN-13 与 UPC-A 都用 6 位左侧数据,但 EAN-13 多一位前置数字,选错类型会让扫码结果对不上。

  3. 生成并看文本

    点「生成条形码」,画布上方是条空图案,下方是人可读文本,方便和输入内容逐位核对。

  4. 确认校验位

    填 12 位数字时会自动补出第 13 位校验位,填满时工具会核对末位,不符会提示正确数值。

  5. 下载或修正

    确认无误后点「下载 PNG」保存图片,需要改动就改内容后重新生成,图片每次都会重绘。

工具详细介绍

本工具在浏览器本地生成五种常见一维条码。EAN-13 用于零售商品,左侧六位数据用 L 与 G 两套编码并按首位数字决定奇偶组合,首位数字本身不占条空。EAN-8 用于小包装商品,结构更短。UPC-A 在北美零售通用,十二位数字全部占条空。Code 39 用四十三个字符的标准表,适合资产标签与内部编号。Code 128 采用 Code128B 字符集,覆盖 ASCII 三十二到一百二十七,密度高,适合物流面单。

编码过程全部由本地 JavaScript 完成,输入内容不会离开浏览器。EAN 与 UPC 的校验位按 GS1 规则计算,从右往左奇数位乘三,偶数位乘一,再取十的补数。Code 39 每个字符由九个单元组成,条空交替,固定三个宽单元,六个窄单元,宽窄比取三比一。Code 128 每个符号六个单元,合计十一个模块,末尾附加停止符与终止条。生成后用 drawImage 把条空画进画布,再按需导出 PNG 图片。

原理与背景

一维条码把数据变成宽度不同的条与空,扫描器按反射光强弱读出宽度序列,再查表还原字符。EAN 系列的左侧数据有两套编码,L 码以空开头,G 码以条开头。它们互为镜像,用哪一套由前置数字决定,因此解码时读到的奇偶组合反过来能确定首位数字。右侧数据统一使用 R 码,每个字符七个模块。配合起始符、中间分隔符与终止符,整幅图固定九十五个模块。

校验位不是装饰,它让扫描器判断这一次读取是否可信。以 EAN-13 为例,前十二位按位权求和后补到十的整数倍,末位就是这个补数。若某一位数字被读错,重新计算的校验值通常与原值不符,设备会要求重扫,而不是把错码直接传给后台。这套规则同样用于 UPC-A 与 EAN-8,区别只在参与加权的位置起点不同,算法本身完全一致。Code 39 与 Code 128 的校验方式不同,分别是模四十三与模一百零三。

典型使用场景

  1. 零售商品条码

    给自有品牌的商品做包装打样时,先出一张能扫的 EAN-13,验证排版位置是否合适。确认包装上的留白与条码高度符合要求后再批量印刷,避免整批包装返工。

  2. 仓储资产标签

    给货架、周转箱或设备编号做内部标签时,编码里常带连字符与前缀。Code 39 对这类内容支持直接,扫描枪与仓储系统普遍兼容,热敏标签机也能快速打印。

  3. 活动核销凭证

    门票、优惠券与提货单上印 Code 128,可以在同样宽度里塞进较长的单据号。配合校验值能降低现场扫码失败与串号的风险,核销环节也不用反复手工输入单号。

使用技巧

  • EAN-13 填十二位就能用,校验位交给工具补,能减少手工算错的机会。
  • Code 39 只用大写字母,输入小写会自动转成大写,内容会因此改变,需要原样保留就改用 Code 128。
  • 印刷时把图片放大到原尺寸以上,两端静区不要裁掉,否则扫码设备可能无法识别。

注意事项

  • 静区被裁掉

    条码两端需要留出空白区域,EAN 与 UPC 一般各留九个模块以上。作图或切图时把边缘裁得太紧,扫描器找不到起始符边界,就会出现时好时坏的结果,返工成本很高。

  • 尺寸放得不够

    按屏幕像素一比一打印会让条空过窄,普通激光打印机无法分辨。印刷时至少放大到原尺寸的百分之一百以上,并优先选分辨率更高的输出方式。

  • 选错条码类型

    EAN-13 与 UPC-A 的条空在首位为零时几乎同形。用 UPC-A 编码却在系统里按 EAN-13 建档,扫码结果会多出一位零。核对时应以实际注册的类型为准,肉眼很难分辨,建议把类型写进备注。

相关工具