← 退出

条形码生成器

支持CODE128/EAN13等多种编码格式

不同编码格式对输入内容有各自的规则要求——EAN-13 和 UPC-A 是国际通用的商品条码标准,分别需要正好13位和12位数字;CODE128 和 CODE39 相对灵活,支持字母和数字组合。所有生成完全在浏览器本地完成,不需要联网查询。

关于条形码生成器

这个工具把你输入的文字或数字编码成一维条形码,并在页面上画出来,可以下载为 PNG 图片。支持四种编码格式:CODE128、EAN-13、UPC-A 和 CODE39,条码下方会同时显示可读的文字。需要先说清楚它能做和不能做的事:它只负责「编码并绘图」,不会去查询商品库,也不会帮你申请商品条码。零售商品的 EAN-13、UPC-A 号码前缀由专门的编码机构分配,自己随便生成的号码虽然能被扫码枪读出来,但并不代表它是合法登记过的商品编码。

操作步骤

  1. 在「条码内容」输入框里输入要编码的内容。页面打开时默认是 123456789012。
  2. 在「编码格式」里点选需要的格式:CODE128(通用,支持字母数字)、EAN-13(商品条码,需13位数字)、UPC-A(北美商品条码,需12位数字)或 CODE39(工业常用)。
  3. 条码会在你输入或切换格式时自动重新生成,不需要点击生成按钮。如果内容不符合格式要求,输入框下方会出现红色提示。
  4. 确认条码显示正常后,点击「下载条码图片」,得到名为 barcode-格式名.png 的文件,例如 barcode-CODE128.png。

各格式的实际行为(用库的真实结果验证)

页面使用开源库 JsBarcode 生成条码。我们用同一个库对几组输入做了实际测试。CODE128 接受 123456789012 和 abc-123,但无法编码中文。CODE39 接受 abc-123 和带空格的 ABC 12,并且小写字母会被转换为大写显示,即条码下的文字变成 ABC-123。EAN-13 的情况比较特别:输入 12 位数字 123456789012 时,库会自动补上校验位,最终得到 1234567890128;输入 13 位且校验位正确的 1234567890128 同样通过;但输入 13 位而校验位不对的 1234567890123 会失败。UPC-A 类似:11 位的 12345678901 会补上校验位变成 123456789012;12 位且校验位正确的 123456789012 通过;校验位不对的 123456789013 会失败。所以格式按钮上写的「需13位」只是简称,12 位也可以,多出来的第 13 位是自动计算的;失败时的红色提示也会说明这一点。

支持范围与已知限制

  • 只支持 CODE128、EAN-13、UPC-A、CODE39 四种格式,不支持二维码、Data Matrix、ITF、Codabar 等。
  • 条码的粗细、高度和字号是固定的(线宽 2、高度 80),无法在页面里调整尺寸或颜色。
  • EAN-13 和 UPC-A 只能是数字,位数或校验位不对就会生成失败,并显示「生成失败,请检查输入内容是否符合当前条码格式的要求」,提示中会写明 12/13 位(UPC-A 为 11/12 位)的规则。
  • 把输入框清空后,条码和错误提示会一并清除,此时点击下载不会产生文件。
  • 输入内容两端的空格会被去掉后再编码。
  • 能否被扫码设备识别,还取决于打印质量、尺寸和留白,本工具不能保证打印后一定可读,正式使用前请用实际设备试扫。

该选哪一种格式?

如果只是做内部编号、仓库货位、资产标签,CODE128 通常最方便,字母、数字和常见符号都能编码,而且比 CODE39 更紧凑。CODE39 只适用于有限的字符集,但很多旧系统仍在使用。EAN-13 和 UPC-A 用于零售商品,号码需要符合官方分配的体系,不要用随便编的号码去冒充真实商品。

为什么我输入 13 位 EAN 提示失败?

EAN-13 的最后一位是根据前 12 位算出来的校验位。如果你输入了完整 13 位,但最后一位与计算结果不一致,编码会被拒绝。解决办法有两个:要么只输入前 12 位,让工具自动补全校验位;要么检查你手里的号码是否抄错。

条码下面的文字可以隐藏吗?

不可以。页面固定显示条码下方的可读文字,没有隐藏选项。CODE39 会把字母显示为大写。

下载的是什么格式的图片?

是 PNG 位图,由页面上画布的内容直接导出。因为是位图,放大打印会变模糊,建议在设计软件里按原始尺寸或整数倍放置,不要随意拉伸。

隐私与处理方式

条码完全在你的浏览器里生成。页面只会按需加载 JsBarcode 这个本地打包的前端库,不会把你输入的内容发送给服务器,也不会联网查询商品信息。下载的图片由浏览器直接保存到你的设备上。页面不保存历史记录,关闭或刷新后输入内容恢复为默认值。