条形码生成器

全球通用工具

条形码是对一个你永远不会见面的扫描器做出的承诺。一根条宽错了,收银台、仓库扫描枪或包裹分拣机不会抱怨,它只是拒绝这个码,而你会最糟糕的时刻发现。几乎所有这些风险都是算术:校验位、静区、宽窄比,以及在不画出 EAN-13 首位数字的情况下拼出它的奇偶模式。

类型必须与另一端的扫描器预期一致,也必须与号码允许的形式一致。

零售类型输入数字,Code 39 和 Code 128 输入文本。号码中的空格和连字符会被忽略,缺失的校验位会自动补上。

每根条和每个空都是这个值的整数倍。屏幕显示 2 像素就够;打印标签需要更大一些。

更高的条更容易在斜角下扫描,所以零售符号大约有 22 毫米高。

人类可读行,绘制在 SVG 中。PNG 只包含条,因为没有字体的栅格写入器画不出来。

纸箱标签通常印在这个框里。其他类型会忽略这个设置。

自动更短;一些较老的扫描器和标签打印机会要求手动固定码集。其他类型会忽略这个设置。

边输入边更新。所有计算都在你的浏览器里完成,数据不会离开本机。

EAN-13 条形码

5901234123457

95 个模块的条,静区 11 + 7 个模块,226 × 82 像素,每模块 2 像素。

模块数
95
条数
30
校验
7
打印尺寸
226 × 82 像素

你的条形码

EAN-13 条形码,内容 5901234123457

EAN-13,按每模块 2 像素绘制。条周围的白色空间是扫描器寻找代码起点所需的静区,所以它是图像的一部分,不是页边距。

打印前先用手机对着屏幕:屏幕能读,打印就能读。要打印就用 SVG 下载,它在任何尺寸下都保持清晰。

这个码是如何构建的

  1. 首位数字 5 不画成条:它为左侧六位数字选择奇偶模式 LGGLLG,13 位数字因此能装进只容得下 12 位的符号。
  2. 左保护 101、L 与 G 字母表中的六位数字、中央保护 01010、R 字母表中的六位数字、结束的 101 —— 共 95 个模块。
  3. 校验位是 7:从 590123412345 的右侧开始,数字依次按权重 3 和 1 加权,7 把总和补到下一个十的倍数。只输入不含它的前 12 位,校验位会自动补上。
  4. 左侧 11 个模块、右侧 7 个模块的静区是符号的一部分,不是装饰:扫描器需要这么多白色才能找到代码的起点。

该用哪种符号体系

符号体系它接受校验字符使用场景
EAN-1312 位数字(或带校验位的 13 位)模 10,权重 3 和 1全球零售商品
UPC-A11 位数字(或带校验位的 12 位)模 10,权重 3 和 1美国和加拿大零售
EAN-87 位数字(或带校验位的 8 位)模 10,权重 3 和 1放不下 13 位的小包装
ITF-1413 位数字(或带校验位的 14 位)模 10,权重 3 和 1运输纸箱与贸易项目
Code 39A-Z、0-9 和 - . 空格 $ / + %无(自校验)资产标签、库存标签
Code 12895 个可打印 ASCII 字符模 103,内置于符号中其余一切:标签与包装

短于或长于符号体系允许范围的数字会被拒绝,并说明该体系接受什么,而不是补齐成扫描器会误读的东西。

白底黑字,始终如此:对比度才是扫描器读取的东西,反色或彩色条是代码扫不出来的最常见原因。按 100% 打印,保留静区,不要横向拉伸符号 —— 承载数据的是条宽之间的比例。这个页面只把号码画成符号:它不签发 GTIN,也不判断某个号码是否已被分配。

这个页面按已发布的符号规范做这些算术,并在标签页里画出结果。选择类型,输入数字或文本,你会在屏幕上得到符号、一个用于打印的 SVG,以及一个给不接受 SVG 的一切使用的 PNG。没有上传,没有账号,没有队列,也没有水印。

关于这个工具

扫描器是无情的读者:一根条宽错了,收银台、仓库扫描枪或包裹分拣机就会直接拒绝这个码,而且通常在最不方便的时刻。这个页面按已发布的符号规则绘制 EAN-13、UPC-A、EAN-8、ITF-14、Code 39 和 Code 128,校验位与静区都替你算好。

符号规范规定了条宽比、让 EAN-13 首位数字无需画出的奇偶模式,以及每种类型坚持的静区,因此一个能扫描的符号不是审美问题。编码、绘制和两个下载都在浏览器本地运行,页面背后没有可以接收你数据的端点。

这个页面生成符号,不办理注册。它不能签发 GTIN,不能告诉你一个号码是否已在别处分配,也不能保证打印机像屏幕一样保持窄条。它做的是把一个有效号码变成合规符号,让你自己扫描和测试。

它是怎么工作的

六种符号体系,以及如何在它们之间选择

EAN-13 是北美以外几乎每件商品上的零售码,UPC-A 是它在美国和加拿大的孪生版本,也就是首位为零的 EAN-13,EAN-8 则是给口红或口香糖这类放不下十三位数字的小包装使用的压缩版。三者都以校验位结尾、以起始保护模式开头,并且都通过 GS1 分配,所以号码本身不是你能随便编的。

ITF-14 是你在瓦楞纸箱上看到的那种。它携带 14 位 GTIN,把数字成对编码,每对的第一位放进条,第二位放进条之间的空,并且通常印在一圈承载条框里,这就是表单上那个选项存在的原因。它是这里最不容错的符号体系:ITF 的部分扫描是箱子被送到错误仓库的经典原因,因此承载条和宽单元都按规范要求绘制。

Code 39 是最古老、最简单的字母数字类型:43 个字符、没有校验位,以及一个起止星号,告诉扫描器这个码是从正确方向读到的。它又宽又浪费,却仍然遍布资产标签和工牌。Code 128 用于在意能装多少的场合:每个可打印 ASCII 字符、一个强制校验符号,以及码集 C 中每个符号两位数字,所以同一段数字标签用 Code 128 大约只有 Code 39 的一半宽。

必须正确的算术

每个零售号码都以校验位结尾:从有效载荷右侧开始,权重 3 和 1 交替,校验位就是让总和成为十的倍数的那个数字。输入 EAN-13 的前十二位,第十三位会自动补上;输入全部十三位,你提供的数字会被验证。如果不匹配,页面会说明它应该是哪一位,而不是悄悄修正一个很可能在别处还有笔误的号码。

EAN-13 有一段真正聪明的算术。符号只有十二位数字的位置,但号码有十三位,所以首位数字从不画出来。它选择左侧六位数字各用 L 和 G 两套字母表中的哪一套书写,扫描器读回这个字母表模式就能恢复首位数字。奇偶表错了,符号看起来仍然像条形码,只是代表另一个号码。这是我们在发布前核对得最严的地方之一。

Code 128 用另一种方式自检:对起始符号和码内每个符号做加权模 103 求和,再作为停止模式前的一个额外符号传送。扫描器会重新计算,不一致就丢弃这次扫描,因此 Code 128 不需要印出来的校验位,也能承载任何可打印内容。

模块、比例和条周围的空白

条形码以模块度量:窄条是一个模块,其他每根条和每个空都是它的整数倍,窄条宽度的像素值决定整个符号的尺寸。屏幕上每模块两像素合适;打印则要遵循规范自己的单位,GS1 给零售符号的名义模块宽度是 0.33 毫米,所以这里的模块宽度设置实际上是打印尺寸设置,不是缩放级别。

静区是两侧的白色边距,它是符号的一部分而不是装饰:扫描器需要它来找到代码从哪里开始。EAN-13 左侧要 11 个模块,首位数字就印在那块空白里,右侧 7 个;UPC-A 两侧各 9 个;EAN-8 两侧各 7 个;ITF-14、Code 39 和 Code 128 至少各 10 个。这里的每张图都包含这些边距,所以从这个页面保存的条形码不会因为意外裁切而无法扫描;而横向拉伸,一旦放进文字处理软件就很容易发生,是另一种弄坏条形码的方式。要缩放,不要拉伸。

宽单元是比例而不是绝对宽度,因此每个都选在规范允许的范围内:Code 39 用 2:1,这是合法的最窄比例,也是最短的符号;ITF-14 用 3:1,更胖的宽条更能承受纸箱印刷的油墨扩散。

这个生成器刻意不做什么

它不发放条形码号码。EAN 或 UPC 前缀由 GS1 作为会员资格分配,校验位是笔误探测器而不是安全特性;在这里编出来的、看起来有效的码,不会在任何地方作为商品被扫描。页面能做的是编码你已经持有的号码,或用于自己标签体系的内部编码。

它也不做二维码。QR、Data Matrix、PDF417 和 Aztec 是另一个家族,算术不同,二维码生成器是另一个工具,这里不假装能画。GS1-128 是承载 GTIN、批号和日期的运输标签,需要 FNC1 应用标识符,这里同样不生成:纸箱 GTIN 用 ITF-14,其余用 GS1-128 工具。Code 39 不生成可选的 mod-43 校验位,也不生成全 ASCII 扩展;Code 128 限于码集 B 和 C,也就是可打印 ASCII 字符。

这里没有 AI 辅助,也没有需要注册的东西。编码器是一张取自公开标准的条宽表加一个校验和;我们会把输出与公开标准里相同输入的条宽串逐字符比较,再用一个独立编写的读取器把结果解码回去。

示例

示例使用页面自带的默认输入,只改设置;下面的结果与你在页面上看到的完全一致。

零售商品:不带校验位的 EAN-13

条形码类型: EAN-13,零售商品,13 位数字 · 要编码的内容: 590123412345

EAN-13 条形码

5901234123457

95 个模块的条,静区 11 + 7 个模块,226 × 82 像素,每模块 2 像素。

模块数: 95 · 条数: 30 · 校验: 7 · 打印尺寸: 226 × 82 像素

十二位数字就够了:第十三位是校验位,这里算出来是 7。符号固定为 95 个模块宽,每个 EAN-13 都一样,只有里面的条会变。

运输纸箱:带承载条的 ITF-14

条形码类型: ITF-14,运输纸箱,14 位数字 · 要编码的内容: 0012345678901 · 窄条宽度: 3 px

ITF-14 条形码

00123456789012

135 个模块的条,静区 10 + 10 个模块,475 × 103 像素,每模块 3 像素。

模块数: 135 · 条数: 39 · 校验: 2 · 打印尺寸: 475 × 103 像素

十三位数字加校验位组成 GTIN-14,按每模块三像素绘制,因为纸箱标签的读取距离比货架标签更远。

资产标签:Code 39

条形码类型: Code 39,资产标签,A-Z 0-9 和 - . $ / + % · 要编码的内容: DANFIO-001 · 条高度: 80 px

Code 39 条形码

*DANFIO-001*

155 个模块的条,静区 10 + 10 个模块,350 × 102 像素,每模块 2 像素。

模块数: 155 · 条数: 60 · 校验: 无 · 打印尺寸: 350 × 102 像素

Code 39 没有校验位,也没有小写,所以输入的小写会被转成大写,页面会说明这一点,而不是悄悄改掉数据。

混合标签:最短码集的 Code 128

条形码类型: Code 128,任何可打印内容,最紧凑 · 要编码的内容: ORDER-2026-0915

Code 128 条形码

ORDER-2026-0915

189 个模块的条,静区 10 + 10 个模块,418 × 82 像素,每模块 2 像素。

模块数: 189 · 条数: 52 · 校验: 39 · 打印尺寸: 418 × 82 像素

两段连续数字在码集 C 中按每符号两位打包,其余内容走码集 B,因为只有节省的符号数足以抵消切换符号的开销时,切换才划算。

常见问题

如何为我的商品取得条形码号码?

号码来自 GS1,而不是生成器:公司前缀随会员资格分配,后面的数字由你自己指派。末尾的校验位是算术,不是许可证;在这里编出来的码可能算术完全有效,却对任何商店都没有意义,因为没有数据库包含它。用这个页面编码你已经持有的前缀,或自己建筑里箱子和货架使用的内部编码。

应该使用哪种符号体系?

零售商品:除美国和加拿大外都用 EAN-13,那里用 UPC-A;只有包装非常小时才用 EAN-8。运输纸箱:带承载条的 ITF-14。资产标签、工牌,以及普通读取器必须在没有数据库的情况下处理的任何东西:Code 39。其余一切,内部标签、订单号、文字与数字混合、宽度重要的任何场合:Code 128。

条形码真的能扫描吗?

打印前先用手机对着屏幕:两种情况下代码都来自同一套算术,所以屏幕能读,打印就能读。三件事会弄坏打印出来的条形码:印得太小,GS1 给零售符号的名义模块宽度是 0.33 毫米,远低于这个值就是收银台失败的原因;在文字处理软件里横向拉伸而不是等比缩放;以及印在会把扫描器光线反射回去的光面材料上。

为什么工具给我的号码加了一位,或者拒绝了一个号码?

EAN、UPC、GTIN 和 ITF 号码都以校验位结尾:从有效载荷右侧开始,权重 3 和 1 交替,校验位让总和成为十的倍数。输入不带校验位的有效载荷,它会自动补上。输入完整号码但最后一位不符合这套算术,页面会说明它应该是哪一位;不匹配几乎总意味着号码更靠前的某一位错了,所以悄悄“修正”会掩盖真正的问题。

我可以在这里生成二维码吗?

不能。QR 是二维矩阵码:数据放在网格里,带 Reed-Solomon 纠错,与这里使用的条宽表是完全不同的算术,发布时会是单独的工具。如果另一端的扫描器能读 Code 128,那就是网址或订单号在一维码里的最佳答案。

我可以在运输标签上放批号和日期吗?

不能带应用标识符。GS1-128 是 Code 128 加 FNC1 分隔符,告诉扫描器接下来的数字是批号,这才让标签机器可读。这个页面生成不带 FNC 码的 Code 128,所以条形码只承载你输入的文本,不多不少。纸箱 GTIN 单独使用 ITF-14 是正确的;完整的 GS1-128 标签需要专门为它构建的工具。

我可以把这里的码用在我销售的商品上吗?

零售用途下,号码本身必须来自你的 GS1 会员资格,这个页面不提供前缀;印出来的码还必须经受收银台实际扫描的表面和尺寸,那是印刷工作,不是生成器能担保的。条形码只承载你输入的文本;本站不审查、不批准也不担保你编码的数据,这里的内容也不构成法律或合规建议。

会上传任何内容吗,有水印吗?

没有任何内容离开浏览器。代码里没有上传步骤,编码和绘制都是标签页里的普通算术,两个下载都在你自己的浏览器里作为 blob 创建。SVG 带有一个标题和一段描述,写明符号体系与代码,那是给打开文件的人看的元数据,而不是画在符号上的东西。

为什么 PNG 的条下面没有数字?

因为这里的 PNG 文件不含字体。人类可读行在 SVG 里作为真实文本绘制,数字重要、用于打印或标签时就用那个文件;PNG 则以精确的像素尺寸保存条、任何边框和静区,适合较老的打印机或表格。两种文件都是同一个符号。

为什么不能选择颜色或透明背景?

因为对比度就是全部机制。扫描器看到的是白底黑条,所以反色、彩色或透明的条形码是代码读不出来的常见原因;深色页面上的透明静区比没有静区更糟。白底黑字不是这个页面的限制,而是这些格式的预期。

资料来源与统计口径

  • 符号体系按标准生成:EAN-13、UPC-A、EAN-8 依 ISO/IEC 15420,ITF-14 依 16390,Code 39 依 16388,Code 128 依 15417。
  • 校验位与静区随符号输出,下载不裁掉;二维码、GS1 标识和邮政符号不提供。
  • 编码与绘制在浏览器本地完成,输入不上传。

最近复核于 2026-09-15.

本页在您的浏览器本地运行,请保留原文件备份;不涉及财务建议。 阅读完整免责声明。