跳到正文

生成条形码

私密处理——您的文件绝不会被存储

格式
PNG尺寸

只影响PNG。SVG没有固定尺寸——它是矢量图,放大到任何比例都清晰,因此更适合打印。

您的码会显示在这里

使用方法

1

选择格式

每种格式都注明了用途,您不必靠抛硬币在Code 39和Code 93之间做选择。

2

输入号码或文本

零售格式只接受数字,并会检查位数。省略最后一位,它就会自动算出。

3

下载

打印用SVG,其他场合用PNG。两者都归您所有,无需许可,也无需署名。

选择码制,并打印得能扫出来

这里的几种码制各有用途,不能互相替代。EAN-13和UPC-A是零售商品码,分别固定为13位和12位——而且它们底层是同一个标准,UPC-A就是前面加一个0的EAN-13。EAN-8是用于小包装的短码。ITF-14用于外箱和物流纸箱。Code 128以高密度容纳任意文本,内部系统、物流和资产管理都用它。Code 39可容纳字母和数字,密度低得多,至今仍在老旧的工业和军事系统中使用,因为几乎所有扫码器都能识别它。

固定长度的零售码带有一个校验位,由其他数字加权求和算出,这样误读或输错的数字会被发现,而不会变成另一件商品。这里会计算并校验它,错误的校验位会被拒绝而不是照样画出来——校验位有误的条形码并不是有点小瑕疵的条形码,而是会被扫码器直接拒绝的条形码。

留白区是条形码扫不出来最常见的原因。两侧的空白边距是规范的一部分,而不是装饰——大约是最窄线条宽度的十倍——扫码器正是靠它来判断码从哪里开始、到哪里结束。把条形码紧贴边缘裁切,或把它放在方框边线或彩色色块旁边,就跟删掉一根线条一样必然会让它失效。生成的图片已包含留白区;保留它是您的事。

其余的取决于尺寸和对比度。把条形码缩小到窄线条低于打印机的分辨能力,无论文件多么完美都无法识别——300 DPI的激光打印机是现实中的最低要求,热敏标签打印机更好。保持浅底深色,绝不要深底浅色,也绝不要印在折痕或曲面上。订购一万张标签之前,请先用真正的扫码器测试,因为手机摄像头应用比零售收银的激光扫描器宽容得多。

如果您需要的是别的

零售条形码不能自己编。能在商店里使用的EAN或UPC编码了由GS1(在全球管理编码体系的组织)分配的厂商识别代码,使用自己编的号码,要么扫出来什么都不是,要么和别人的商品撞号。本页面可以画出任何有效的号码;您是否有权使用这个号码是另一回事,凡是要进入零售渠道的,答案来自GS1,而不是来自生成器。

对于大批量标签,生成图片是错误的做法。标签打印机使用ZPL或EPL语言,把条形码作为指令发送,打印机就能以自身的原生分辨率渲染——总比缩放后的图片更清晰,也快得多。在代码中,python-barcode、ZXing和bwip-js能生成这里的所有码制,还支持本页面不提供的GS1复合码和二维码格式,并且能很好地接入打印流程。

常见问题

我需要哪种格式?

在北美以外销售的零售商品,用EAN-13。在北美,用UPC-A。两者都放不下的小包装,用EAN-8。物流纸箱用ITF-14。凡是内部用途——资产标签、仓库库位、您自己的库存编号——用Code 128,它既能容纳字母也能容纳数字,而且紧凑。Code 39较老,生成的条形码更长,但几乎所有扫码器都能识别,在使用老设备时偶尔会派上用场。

什么是校验位?为什么重要?

它是零售条形码的最后一位,不是选出来的,而是根据其他所有数字算出来的。它的作用是发现扫描和输入错误:改动任何一位,校验位就对不上了,扫码器会拒绝这次读取,而不是悄悄结算成另一件商品。在这里输入EAN-13的前12位,第13位会自动替您算出。

如果我的号码校验位不对怎么办?

会被拒绝,并告诉您它本该是哪个数字。这是有意为之,也是使用本页面而不是搜索结果里第一个生成器的主要理由。您的号码总有来处——包装、电子表格、供应商——如果悄悄更正最后一位,就会把一个笔误掩盖在号码中专门用来发现笔误的那一位上。在这里发现问题,远比印出来之后才发现好。

位数不够时会自动补齐吗?

不会——而大多数生成器会,这一点值得了解。我们实测过:用“123”生成EAN-13,底层引擎不会报错,而是用0补齐,返回一个完全有效的条形码。有效,但对应的是一件完全不同的商品。有人印了一千张标签,到收银台才发现问题。本页面会先数位数并拒绝,告诉您这种格式需要几位。

需要购买条形码号码吗?

要在商店销售,需要——零售EAN和UPC号码由GS1分配,前缀代表您的公司身份。自己编的号码可能与真实商品冲突,商店会拒收。但如果是内部用途,就不需要:您自己的库存、资产标签、图书馆系统和仓库库位可以使用任何号码,而Code 128正是为此设计的。

可以免费商用吗?

可以。这些都是开放标准,生成条码无需支付许可费。图片归您所有,可用于包装、标签或其他任何用途,无需署名,无水印。

我的数据会被存储吗?

不会。不存储任何内容,也不发出任何请求。页面加载完成后,即使断开网络也照样能用。

为什么我的条形码扫不出来?

最常见的原因是印得太小,或者两端的空白被裁掉了——一维条形码在第一根线条之前和最后一根线条之后都需要留白区,把它裁掉是失败最常见的原因。其次是:打印分辨率太低,导致细线条糊成一片;把PNG放大使用;或者深底浅色打印。打印请用SVG,并在批量印刷前先实际扫描测试。

小贴士: EAN-13、EAN-8、UPC-A和ITF-14是固定长度的,这里会计算并校验它们的校验位——数字有误会被拒绝,而不是照样画出来。Code 128和Code 39可以接受任意文本。条形码画得太小,或者用低分辨率打印机打印,无论文件本身多么正确,都无法扫描。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。