使用barcode命令制作并打印条码

使用 barcode 命令制作并打印条码

  • 首先需要安装 barcode 软件包(说明:barcode目前只支持命令行操作)
    sudo apt-get install barcode

  • 另外建议安装另个一个软件 glabels, 可以方便地在图形界面制作条码并排版。
    glabels 类似于 Windows 下的 CorelDraw
    安装命令:
    sudo apt-get install glabels glabels-data
    安装好后,在菜单“办公 ----> gLabels ” 中打开程序即可。
    也可以直接按 ALT + F2 , 输入 glabels 直接运行

  • barcode 帮助信息的中文翻译见 2楼。

  • barcode 命令制作条形码的命令示例及说明见 3楼。

  • 主流条形码的相关介绍见4楼。

2楼

barcode --help
barcode: 选项:
-i <参数> 输入文件 (要编码的文字), 默认为标准输入
-o <参数> 输出文件, 默认为标准输出
-b <参数> 要编码的文字 (如果未使用这个参数,则使用输入文件)
-e <参数> 条码规则 (默认使用最适用当前文字的条码规则)
-u <参数> 单位,可以是 mm (毫米) 或者 in (英寸)。用于配合 -g, -t, -p 选项
-g <参数> 页面排列设置: 宽x高[+边距+边距]
-t <参数> 表格排列设置: 列x行[+边距+边距]
-m <参数> 表格内部边距: 水平边距[,垂直边距]
-n numeric: 条码下面不显示文字
-c 不使用校验码(前提是当前条码编码规则允许)
-E 打印每个条码为 eps 格式文件 (默认格式:多页面 ps 格式)
-P 创建 PCL 格式的输出,而不是 postscript 格式
-p <参数> 纸张页面大小 (请参考 man 手册)

常见的条码规则 (在同一行的是同义词):

目前得到国际公认用于商品包装的中要有两种,即UPC和EAN。
这两种条形码只能表示0到9共十个数字。

1.UPC(Uniform Product Code)条形码。
又称“统一产品代码”。
UPC条形码是由美国和加拿大共同组织制定的。
UPC码作为美国、加拿大产品统一的标识符号。
2.EAN条形码。EAN条形码是欧洲物品编码协
会(European Article Numbering Association , EAN)在 UPC 编码基础上
确立的物品标识符号。目前使用EAN条形码的该协会成员国已有
数十个,除欧洲外,中国及亚洲许多国家也使用此码。

由于国际上存在 UPC 和 EAN 这两种编码系统,因此,销往美国和加
拿大的产品应使用UPC码,而出口到其他国家和地区则需使用EAN码。

两种条形码的编码规则:
1.UPC 编码:由11位数字的通用产品代码和1位校验码组成。
产品代码的第1位数字为编码系统字符;中间5位数字表示制
造商号,后5位数字为产品代码。
2.EAN 编码:是国际通用的符号体系,是一种长度固定的条码,
所表达的信息全部为数字,主要应用于商品标识。
由代表12位数字的产品代码和1位校验码组成。
产品代码的前3位为国别码;中间4位数字为制造商号;
后5位数字为产品代码。
EAN码的国别码由EAN总部分配管理。中国大陆的国别代码为690-695。
制造商号代码由EAN在各国的分支机构分配管理。在中国大陆,由
“中国物品编码中心”统一分配企业代码。产品代码由制造商根据规定
自己编制。

由于EAN码是在UPC码基础上发展和创新的,所以在技术上支持EAN码的
条码扫描设备可以正确识别UPC条码,但UPC条码扫描设备可能无法正确
识别EAN条码。

“ean”, “ean13”, “ean-13”, “ean8”, “ean-8”
只能表示0到9的数字。
主要使用于除美国和加拿大以外的其它国家和地区。

“upc”, “upc-a”, “upc-e”
只能表示数字,有A、B、C、D、E五个版本。
版本 A - 12 位数字 版本 E - 7 位数字。最后一位为校验码。
主要使用于美国和加拿大地区。

“isbn”
ISBN是international standard of booknumber的缩写,即国际标准图书编号。
ISBN是国际通用的图书或独立的出版物(除定期出版的期刊)代码。
ISBN 码必须为数字。
旧版本的 ISBN 编码于1972年首次发布,以10位数系统为基本结构;
新版本的 ISBN 编码(即第四版)于2005年5月发布,把原来的ISBN编码由10位数系统升为13位数系统。

“39”, “code39”
能表示字母、数字和其它一些符号共44个字符:大写英文字母
A-Z, 数字0-9,(+)(-)()(/)(.)($)(%),以及空格符(Space),
条形码的长度是可变化的,通常用“
”号作为起始、终止符。
39码支持双向扫描读取,也就是说,如果把39码倒着读取得到的也是同样的结果。
39码的校验码可有可无,并且校验码不用代码。用于工业、图书、以及票证自动化管理上。

“128c”, “code128c”
“128b”, “code128b”
“128”, “code128”
“128raw”
128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码。
128码数据密度高, 字符串可变长,符号内含校验码,有三种不同版本:
128A:标准数字、大写字母、控制符及特殊宇符;
128B:标准数字、大写宇母、小写字母及特殊字符;
128C/EAN128: [00]~[99]的数字对集合,共100个,只能表示偶数位长度的数字。
128 码还支持对下列四种功能码进行编码:
FNC1 - 保留用于欧洲商品编码 (EAN)
FNC2 - 用于指示条形码阅读器将条形码符号中的消息与文本符号中的消息链接起来
FNC3 - 用于指示条形码阅读器执行重置
FNC4 - 在结算系统应用中使用
128码格式的一种变化是 EAN-128。此符号使用同一代码集作为代码 128;
但功能码 FNC2 至 FNC4 无法使用,而 FNC1 作为部分起始代码使用。

“i25”, “interleaved 2 of 5”
交叉25码:
只能表示数字0-9。可变长度。应用于商品批发、仓库、
机场、航空票务以及行李与货物处理、生产/包装识别、工
业中,条形码的识读率高,可适用于固定扫描器可靠扫描,
在所有一维条形码中的密度最高。

“cbr”, “codabar”
库德巴码:也称“血库用码“:可以表示数字0 - 9,字符
$、+、 -、还有只能用作起始/终止符的a,b,c d四个字符,
可变长度,没有校验位,应用于物料管理、图书馆、血站和机场行李包裹管理,
Codabar 条码在日本又称为 NW 7 条码。

“msi”
MSI 数据公司 在 Plessey 条码基础上制定的条码。MSI码最早用于零售商品作商标。

“pls”, “plessey”
Plessey条形码由英国Plessey公司研制,主要用于图书管理中。

“code93”, “93”
与39码相似,但是密度比93码更高,能够替代39码

================

3楼
手动制作条形码示例

** 例300:从文本文件中读取条码数据,批量制作条形码并生成可打印
的 PostScript 文件 (.ps)

首先创建一个文件,比如 ~/barcode.txt
运行命令:
gedit ~/barcode.txt
或者
kate ~/barcode.txt

把下面的文字内容(不包含分隔线),复制到 barcode.txt 文件中,保存。
(说明:如果某行有空行,在生成条形码时,每个空行都会占用一个条码位置。)

EAN13
6901234567892
690123456789
EAN8
69012341
6901234
UPCA
089600124569
08960012456
UPCE
08960007
0896000
CODE39
CODE93
Code128b
ISBN
7-115-33921
711533921

再运行 barcode 命令生成 条形码 .ps 文件
(下面的命令请在同一行内输完,不要分成2行输入)
barcode -e 128b -i ~/barcode.txt -o ~/barcode.ps -u mm -p 210x297 -t 3x14+30+25 -m 5,3

命令说明:
-e 128b 表示条码规格为 128b, 即 “code128b” 。
这种编码的优点是能支持数字,大写和小写英文字母,以及其它字符。
而 EAN, UPC 条码只支持纯数字;
code39 (即39码)只支持数字,大写字母,以及其它字符,但不支持小写字母。
(如果在 code39编码中输入小写字母,输出条码时会自动转换成大写字母。)
如果是在企业内部流通的条码,建议优先选用 128b 条形码编码。

-o ~/barcode.ps 保存到 PostScript 格式文件 ~/barcode.ps
-i ~/barcode.txt 从 ~/barcode.txt 文件读取条码文字数据

-u mm 以 mm (毫米为单位,对纸张大小,边距,行距进行设置)
-p 210x297 设置纸张大小为210x297(即A4尺寸), 长度单位上面已经指定为mm
-t 3x14+30+25 以表格方式排列多组条码,分布为3列,14行。左右页边距为30mm,
上下页边距为25mm
-m 5,3 每个格子内条码上下行行距为5mm, 格子之间左右间距为3mm

如果源文件 barcode.txt 中的某些条码无法被正常解码,或者不符合编码规则
(如编码数字位数不对,有不应该出现的字母,或者校验码与条形码不符合等),
那么对应的内容就不能生成条码。

制作完成后,查看生成的条形码 .ps 文件:
xdg-open ~/barcode.ps

** 例301:手动制作“ISBN”图书条形码

条形码编码:ISBN
如某图书的条形码为:
ISBN 978-7-115-33921-8
或者
978-7-115-33921-8

手动输入时,前面的3位数字978,以及最后面一位数字8(校验码,自动生成),
不需要输入,也不能输出,否则制作出的条形码不是预期的字符,或者根本无效。
只需要输入数字
7-115-33921
或者
711533921
即可。

命令:
barcode -e isbn -b 711533921 -o ~/isbn.ps

命令说明:
-e isbn 表示条码规格为 isbn 即图书专用条码规格
-b 711533921 表示要编码的文字内容为 711533921
-o ~/isbn.ps 保存到 PostScript 格式文件 ~/isbn.ps

提示:
缺点:生成的 ps 格式文件中,条形码默认位置在左下角。如果是使用
A4 尺寸(210x297mm),纸张的上部会有大片空白,纸张浪费较多。

查看生成的条形码文件(PostScript 格式,文件扩展名为 .ps):
xdg-open ~/isbn.ps

或者直接使用 evince 程序来查看生成的条码文件:
evince ~/isbn.ps

** 例302:手动制作“EAN-13” 或者 “EAN-8” 商品条形码

说明:
EAN/EAN-13/EAN-8 系列商品条形码, 只能在除美国、加拿大以外的
其他国家和地区使用、流通;
必须是13位或8位纯数字,不包括英文字母或其它字符;
数字必须符合 EAN 编码的定义规则;

在中国流通的商品的条形码,就是使用 EAN 编码,并且是以690-695
开头。

条形码编码:EAN/EAN-13/EAN-8
如某商品条形码为:
EAN13 规格(含校验码共13位数字):
6901234567892
或者
EAN8 规格(含校验码共8位数字):
69012341

两种规格最后一位数字是自动生成的校验码,不需要手动输入
即只需要输入:
690123456789 (共12位,最后的校验码数字2不需要输入,会自动生成并补足13位)
输入时只
6901234(共7位,最后的校验码数字2不需要输入,会自动生成并补足8位)

提示:
如果输入带有正确校验码的13位或8位数字,也能生成正确的 EAN-13 或 EAN-8
商品条形码,与输入不带校验码的12位或7位数字的效果相同。

下面几条命令行操作,都能生成有效的 EAN 商品条形码:
barcode -e ean -b 6901234567892 -o ~/isbn.ps
barcode -e ean -b 690123456789 -o ~/isbn.ps

barcode -e ean -b 69012341 -o ~/isbn.ps
barcode -e ean -b 6901234 -o ~/isbn.ps

** 例303:手动制作“UPC-A” 或者 “UPC-E” 商品条形码

说明:
UPC/UPC-A/UPC-E 系列的商品条形码, 只能在美国和加拿大使用和流通;
必须是12位或8位纯数字,不包括英文字母或其它字符;
数字必须符合 UPC 编码的定义规则;

条形码编码:UPC/UPC-A/UPC-E
如某商品条形码为:
089600124569
UPC-A(含校验码共12位数字):
或者
08960007
UPC-E(含校验码共8位数字):

两种规格最后一位数字是自动生成的校验码,不需要手动输入
即只需要输入:
089600124569 (共11位,最后的校验码数字9不需要输入,会自动生成并补足12位)
输入时只
0896000(共7位,最后的校验码数字7不需要输入,会自动生成并补足8位)

提示:
如果输入带有正确校验码的12位或8位数字,也能生成正确的 UPC-A(含校验码共12位数字) 或
UPC-E(含校验码共8位数字)商品条形码,与输入不带校验码的11位或6位数字的效果相同。

下面几条命令行操作,都能生成有效的 EAN 商品条形码:
barcode -e upc -b 089600124569 -o ~/isbn.ps
barcode -e upc -b 08960012456 -o ~/isbn.ps

barcode -e upc -b 08960007 -o ~/isbn.ps
barcode -e upc -b 0896000 -o ~/isbn.ps

4楼

条形码规范补充说明

** 在已经注册登记的图书或出版物上,请使用ISBN条码
(13位或10位纯数字);

** 如果商品需要在美国、加拿大流通,请使用UPC条码:
“upc”, “upc-a”, “upc-e”
upc-a: 12位纯数字。前面11位为物品编码,最后1位是校验码。
upc-e: 8位纯数字。前面7位为物品编码,最后1位是校验码。

** 如果商品是在除美国、加拿大以外的其他国家和地区流通,请使用EAN条码:
“ean”, “ean13”, “ean-13”, “ean8”, “ean-8”
ean-13: 又称EAN标准版。由13位纯数字(含1位校验码)
ean-8: 又称EAN缩短版。由8位纯数字组成(含1位校验码)

** 中国邮政码
中国邮政系统使用的条码是Matrix 25条码的一种变种。
Matrix 25码只能表示数字0到9。当采用Matrix 25码的编码规范,而采用
ITF 25码的启始符和终止符,生成的条码就是中国邮政码。

** 亚马逊包裹上使用的条码是 code128b 码;

** 如果条码第1位和最后1位都是星号(*), 通常是39码;

  • 其它条码编码规则

** GS1-128 条码
GS1-128 条码即原来的 UCC/EAN-128 条码,支持双向扫描。
UCC/EAN-128 条码是 EAN·UCC 系统中唯一可用于表示附加信息的条码,
可广泛用于非零售贸易项目、物流单元、资产、位置的标识。
支持0-9的数字,大小写英文字母,特殊字符、控制字符,以及 00 至
99 这 100 个两位数字。但是 UCC/EAN-128 条码不使用“空格”符号。

** ITF-14 条码
ITF-14 条码常见于包装纸箱上。
ITF-14条码用于标识非零售的商品。它对印刷精度要求不高,比较适合直接
印制(热转换或喷墨)于表面不够光滑、受力后尺寸易变形的包装材料,如瓦
楞纸或纤维板上。ITF-14条码只能表示数字0-9,它由矩形保护框、左侧空白
区、条码字符、右侧空白区组成。

** PDF417二维条码(简称417条码)
典型的二维条码,不需要连接数据库,本身可存储大量数据。
417条码主要应用于:医院、驾驶证、物料管理、货物运输;特点是当条码受到一定
破坏时,错误纠正能使条码能正确解码。它是一个多行、连续性、可变长、包含大量
数据的符号标识。每个条码有3-90行,每一行有一个起始部分、数据部分、终止部
分。它的字符集包括所有128个字符,最大数据含量是1850个字符。

** QR Code 二维条码
QR Code码是由日本Denso公司研制的一种矩阵二维码符号,信息容量
大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强,另外还有
两个很重要的特性:
1.超高速识读特性,每秒可识读30-100个字符的QR Code码符号,而其它
二维码编码方案(如Data Martix码,PDF 417码)每秒只能读取2-3个字符。
2.支持全方位(360度)识读。(相比之下,PDF417二维条码识读方位角
仅为±10度)。
目前在中国普通使用的二维条码就是QR Code 码。