条形码生成器

转换器

选码制、填内容即可生成条形码,覆盖 CODE128、EAN13、UPC、CODE39 等 20 多种格式,可下载 PNG 或 SVG 矢量图,打印不虚。覆盖常见零售与物流码制,可指定校验位与条码尺寸。支持下载位图或矢量图,印刷放大不虚。适合商品包装、库存标签与资产编号打印。条码尺寸可精确设置。

就绪
条形码预览
CODE128

关于 条形码生成器

条形码生成器按 Code128、EAN-13、UPC 等多种常见规范,把数字或文本编码成可扫描的条码图片,方便制作价签、资产编号或活动入场凭证。底层使用 JsBarcode 库在浏览器本地完成编码,支持 CODE128、EAN-13、EAN-8、UPC-A、CODE39、ITF-14、MSI、pharmacode、Codabar 等二十余种规格,可输出 PNG 位图或 SVG 矢量图,并自定义条宽、高度、边距与颜色。几个需要了解的技术点:CODE128 支持完整 ASCII 字符集且密度较高,适合长数据或字母数字混合;EAN-13 与 UPC-A 是零售流通规范,前 12 位数字会按 GS1 模 10 算法自动补齐校验码;CODE39 只支持 43 个字符但通用性好。生成完全在浏览器本地完成,数据不上传,对需要临时打印条码的零售、仓储或活动场景是轻量即用的工具;若需要二维码而非一维码,可改用本站的二维码生成器满足移动端扫码需求,二者按扫码设备能力选用即可。

码制的选择首先取决于要承载什么内容,而不是取决于哪种看起来更常见。数字型码制容量小但条窄、适合短编号;字母数字码制能表达更多字符但对打印精度要求更高;二维码制容量大且带纠错能力,适合较长文本与被磨损的场景。因此应当按内容长度与使用环境选码制,再考虑尺寸与打印方式。

静区是最容易被裁掉却直接导致扫不出来的部分,这一点在设计版面时需要预留。码的两侧与上下需要留出一定宽度的空白,扫描设备才能正确识别边界;若为了美观把码裁到紧贴边缘,或与其他图形、文字挤在一起,识别率会明显下降。因此在导出与排版时应当把这段空白一并保留,而不是事后裁剪。

模块尺寸与实际打印精度需要一起考虑,只调参数不看输出容易翻车。屏幕上的尺寸与打印后的物理尺寸不成正比,过小的模块在低精度打印机上会粘连,导致条与空无法区分;而尺寸过大又可能超出预留版面。因此更稳妥的做法是先在目标打印机上打样一次,用实际设备验证能否识别。

校验位的处理因码制而异,需要确认是自动生成还是需要自行计算。部分码制要求把校验位包含在数据里,部分则由生成环节自动追加,若使用者自行计算错误会得到结构合法但内容错误的码;而另一些码制本身没有校验位,只能靠格式约束保证正确性。因此生成后应当用另一个工具复核一次。

纠错等级与容量是相互制约的一组参数,提高一方就要牺牲另一方。纠错能力越强,同样内容占用的空间越大;而在版面受限时提高纠错等级会让码变得密集,反而不利于低分辨率打印。因此应当根据实际风险选择等级:容易脏污或磨损的纸质标签提高等级,屏幕展示或短期使用则可以取较低值。

最后,批量生成时一致性比单张完美更重要。同一批标签若尺寸、静区与模块大小各不相同,打印后的识别率会参差不齐,排查时也难以判断是设备问题还是个别文件问题。因此批量任务应先定一套统一参数并抽检若干张,确认都能被识别后再整体生成,而不是一张张单独调整。

实现原理

一维码把数据按条空宽度编码,并含校验位或特殊起止符。因此内容不能随手拼接:EAN-13 与 Code 128 各自规定了字符集与校验算法,手工拼出的数字串通常会扫不出来。生成必须交给实现完整的库,校验失败时应报错而不是静默输出一个不可用的图形。

输入EAN-13 的前十二位数字
输出第十三位由前十二位按加权模十算法算出——写错会导致扫码设备直接拒读

本页实测数据

渲染结构正常EAN-13(输入 12 位 590123412345,自动补校验位)实测 55 个色块,宽度分布只有 2/4/6/8px(即 1/2/3/4 个模块),首模块为深色——条形宽度是模块的整数倍,没有亚像素抖动造成的伪条
模块数 101(理论 95)像素实测总宽 202px ÷ 2 = 101 模块,比 EAN-13 教科书值 95 多 6。差异未归因(可能与 JsBarcode 的 guard 处理或 canvas 边距有关),因此本页只声称「按库渲染」,不声称「逐模块符合 ISO/IEC 15420」
输入校验EAN-13 输入 ABC123 会报错而不是画出无效条码;CODE128 接受字母数字混合
校验位EAN-13 输入 12 位时由库自动补第 13 位校验码(这是 JsBarcode 的行为,页面不自行计算)

条形码「画出来」和「扫得出来」是两件事:本页把编码交给 JsBarcode 渲染,并未做解码回归(没有把生成的图再扫回原始数字)。像素实测发现模块数为 101 而教科书值是 95,差 6 个模块——原因未归因,可能是 guard 条的绘制方式或边距被计入,所以不能据此断言「完全符合 EAN-13 标准」。实用建议:印刷前用扫码枪或手机实测一张,尤其是缩小尺寸后最容易出现条宽不足导致的扫描失败。

测量方式: 逐像素读取 canvas 中心行(先裁掉左右 margin,再以最窄条为单位),统计色块宽度分布与模块数;另测 CODE128 对字母数字输入、以及 EAN-13 对非数字输入的处理。 · 实测于 2026-10-31

使用方法

  1. 打开「条形码生成器」
  2. 选择源格式与目标格式
  3. 根据需要调整输出选项
  4. 点击「转换」按钮,结果实时显示
  5. 复制或导出结果

使用场景

  • 商品条码生成 — 为零售商品生成 EAN-13 或 UPC-A 条码,用于包装印刷和收银扫描。
  • 库存管理标签 — 使用 CODE128 生成含字母数字的库存编码条码,便于仓库扫码出入库。
  • 物流追踪编码 — 生成 ITF-14 物流箱条码,用于供应链运输箱标识和追踪。
  • 药品编码 — 生成 pharmacode 药品条码,用于药品包装识别和合规标注。
  • 活动签到码 — 用 CODE39 生成参与者编号条码,扫码快速签到核销。

常见问题

EAN-13 的校验码是怎么计算的?

采用 GS1 模 10 加权算法:前 12 位奇数位乘 1、偶数位乘 3 求和,用 10 减去和的个位数得到校验码。工具会自动计算并追加。

CODE128 和 CODE39 有什么区别?

CODE128 支持 ASCII 全字符集且密度更高,适合长数据;CODE39 仅支持 43 个字符(大写字母、数字和部分符号)但更简单兼容性好。

能导出 SVG 矢量格式吗?

能。工具支持输出 PNG 位图和 SVG 矢量图两种格式,SVG 可无损缩放适合印刷排版。

生成的条码能被扫码枪识别吗?

能。生成的条码符合各标准规范,设置足够的条宽和高度后可被主流激光扫码枪和手机摄像头识别。

条码太密扫不出来怎么办?

扫描失败常因条宽过窄、对比度不足或高度太矮。建议适当加粗条宽、增大高度并保证深色条与浅色底反差明显。

数据会被上传吗?

不会。所有条码生成在浏览器本地通过 JsBarcode 库完成,不发送任何网络请求,可安全生成含敏感编码的条码。

生成的条形码扫描枪识别不出来?

先核对两点:码制是否与扫描枪支持的类型匹配(超市常用 EAN-13,物流用 Code128,两者不通用);条码下方的留白(静区)是否足够,打印或截图时把左右留白裁掉就会扫不出。放大尺寸并保证黑白对比后再试。

条形码内容和二维码功能一样吗?该怎么选?

不一样。条形码容量小(几十个字符)、只能横向扫描、成本极低,适合零售与库存;二维码容量大(可存 URL、名片)、支持容错与中文,适合营销与支付。选型看场景:被专用扫描枪读取选条形码,被手机相机读取选二维码。

广告