文章目录
- 1.Zint简介
- 2.术语
- 3.命令行
- 3.1.输入数据
- 3.2.直接输出
- 3.3.选择条码类型
- 3.4.调整高度
- 3.5.调整空白
- 3.6.添加边界条和框
- 3.7.颜色设置
- 3.8.旋转
- 3.9.调整图像尺寸
- 4.界面
- 5.总结
1.Zint简介
Zint项目旨在提供一个完整的跨平台开源条形码生成解决方案。该软件包目前包括一个基于Qt的GUI,一个命令行可执行文件和一个带有API的库,允许开发人员访问Zint的功能。希望Zint提供的解决方案能够为专业用户提供足够灵活的解决方案,同时尽可能多地处理从输入数据到条形码图像的轻松转换。
构成Zint项目主要组件的库目前能够以超过50种条形码符号(条形码类型)对数据进行编码,对于每种条形码符号,都可以从Unicode (UTF-8)或原始8位数据流转换数据。图像可以呈现为便携式网络图形(PNG)图像,Windows位图(BMP),图形交换格式(GIF), ZSoft Paintbrush图像(PCX),封装后脚本(EPS)或可缩放矢量图形(SVG)。有许多选项可用于设置输出图像的特征,包括图像的大小和颜色、符号中使用的纠错量,以及在光栅图像的情况下,设置图像的方向。
2.术语
本文档中使用的一些单词和短语是专门针对条形码的,因此简要解释一下以帮助理解:
symbol:符号是根据其中一种标准对数据进行编码的图像。这包括条形码(线性符号)以及在此程序中使用的表示数据的任何其他方法。
symbology:对数据进行编码以产生某种类型符号的方法。
linear:线性符号是由条形和空格组成的符号,大多数人一提到“条形码”就会联想到它。例子包括EAN。
stacked:堆叠符号由多个线性符号组成,一个放在另一个上面,它们一起保存消息,通常伴随着一些纠错数据。示例包括PDF417。
matrix:矩阵符号是基于(通常是正方形的)元素网格的符号。示例包括Data Matrix,但Maxicode和DotCode也被认为是矩阵符号。
x-dimension:符号的x维是最小元素的大小(通常是宽度)。对于线性符号来说,这是最小条的宽度。光栅图像中x维的默认大小是2像素。许多符号都有固定的宽高比,其中高度表示为x维的倍数。
composite:复合符号是由线性和堆叠的元素组成的符号。当前支持的消息由线性“主”消息组成,该消息在上面打印基于PDF417符号的堆叠组件。这些符号也有一个分隔符,用于分隔线性和堆叠组件。
GS-1 data:这是一种表示信息的结构化方式,它由数据“块”组成,每个数据块都以一个应用程序标识符开始。人工智能识别正在编码的信息类型。见附录C。
Reader Initialisation:一些符号允许包含一个特殊字符,该字符可以被扫描设备检测到,表示该数据用于编程或更改该设备的设置。这些数据通常不会传递给处理正常输入数据的软件。只有当您熟悉与扫描仪相关的编程代码时,才应该使用此功能。
ECI: ECI机制允许用通常只支持Latin-1字符的符号对多语言数据进行编码。例如,如果您需要编码西里尔字符,这可能很有用,但应谨慎使用,因为并非所有扫描仪都支持此方法。
3.命令行
介绍如何使用命令行前端程序对数据进行编码。给出的示例是针对Linux平台的,但Windows也有相同的选项,只是要记住包括可执行文件扩展名。例如:
zint.exe -d "This Text"
3.1.输入数据
这将编码文本“This text”。Zint将使用默认符号Code 128,并输出到当前目录下的默认文件out.png。或者,如果在构建Zint时不存在libpng,则默认输出文件将是out.gif。-d开关和输入数据应该始终是命令行输入的最后一个条目。在此之后给出的任何选项将被忽略。
输入到Zint的数据假定以Unicode (UTF-8)格式编码。如果您使用Unicode以外的方案编码超出7位ASCII集的字符,则需要设置相应的输入选项。可以在命令行中使用反斜杠(\)作为转义字符,并结合esc开关输入非打印字符。允许的字符如下表所示。
--------------------------------------------------------------------
Escape Character | ASCII Equivalent | Interpretation
--------------------------------------------------------------------
\0 | 0x00 | Null
\E | 0x04 | End of Transmission
\a | 0x07 | Bell
\b | 0x08 | Backspace
\t | 0x09 | Horizontal Tab
\n | 0x0A | Line Feed
\v | 0x0B | Vertical Tab
\f | 0x0C | Form Feed
\r | 0x0D | Carriage Return
\e | 0x1B | Escape
\G | 0x1D | Group Selector
\R | 0x1E | Record Selector
\xNN | 0xNN | Any other 8-bit character
| | where NN is hexadecimal
--------------------------------------------------------------------
可以使用-i开关直接从文件中读取输入数据,如下所示。除非选择了替代模式,否则假定输入文件是Unicode (UTF-8)格式的。该命令取代了-d开关的使用,并且应该是给出的最后一个选项。
zint -i ./somefile.txt
3.2.直接输出
可以使用-o开关将输出定向到默认文件以外的文件。例如:
zint -o here.png -d "This Text"
这将在文件here.png中绘制一个Code 128条形码。如果需要封装Post Script文件,只需在文件名后面加上.eps,其他支持的文件类型也可以这样:
zint -o there.eps -d "This Text"
3.3.选择条码类型
选择希望生成哪种类型的条形码(即使用哪种符号)可以在命令行中使用-b或–barcode=开关,后跟下表中的适当整数值。例如,要创建一个数据矩阵符号,你可以使用:
zint -o datamatrix.png -b 71 -d "Data to encode"
条码类型对应数值。
--------------------------------------------------------------------------------
数值 | 条码类型
--------------------------------------------------------------------------------
1 | Code 11
2 | Standard Code 2 of 5
3 | Interleaved 2 of 5
4 | Code 2 of 5 IATA
6 | Code 2 of 5 Data Logic
7 | Code 2 of 5 Industrial
8 | Code 3 of 9 (Code 39)
9 | Extended Code 3 of 9 (Code 39+)
13 | EAN (Including EAN-8 and EAN-13)
14 | EAN + Check Digit
16 | GS1-128 (UCC.EAN-128)
18 | Codabar
20 | Code 128 (automatic subset switching)
21 | Deutshe Post Leitcode
22 | Deutshe Post Identcode
23 | Code 16K
24 | Code 49
25 | Code 93
28 | Flattermarken
29 | GS1 DataBar-14
30 | GS1 DataBar Limited
31 | GS1 DataBar Extended
32 | Telepen Alpha
34 | UPC A
35 | UPC A + Check Digit
37 | UPC E
38 | UPC E + Check Digit
40 | PostNet
47 | MSI Plessey
49 | FIM
50 | LOGMARS
51 | Pharmacode One-Track
52 | PZN
53 | Pharmacode Two-Track
55 | PDF417
56 | PDF417 Truncated
57 | Maxicode
58 | QR Code
60 | Code 128 (Subset B)
63 | Australia Post Standard Customer
66 | Australia Post Reply Paid
67 | Australia Post Routing
68 | Australia Post Redirection
69 | ISBN (EAN-13 with verification stage)
70 | Royal Mail 4 State (RM4SCC)
71 | Data Matrix (ECC200)
72 | EAN-14
73 | Vehicle Identification Number (America)
74 | Codablock-F
75 | NVE-18
76 | Japanese Postal Code
77 | Korea Post
79 | GS1 DataBar-14 Stacked
80 | GS1 DataBar-14 Stacked Omnidirectional
81 | GS1 DataBar Expanded Stacked
82 | PLANET
84 | MicroPDF417
85 | USPS OneCode
86 | Plessey Code
87 | Telepen Numeric
89 | ITF-14
90 | Dutch Post KIX Code
92 | Aztec Code
93 | DAFT Code
97 | Micro QR Code
98 | HIBC Code 128
99 | HIBC Code 39
102 | HIBC Data Matrix ECC200
104 | HIBC QR Code
106 | HIBC PDF417
108 | HIBC MicroPDF417
112 | HIBC Aztec Code
115 | DotCode
116 | Han Xin (Chinese Sensible) Code
121 | Royal Mail 4-state Mailmark
128 | Aztec Runes
129 | Code 32
130 | Composite Symbol with EAN linear component
131 | Composite Symbol with GS1-128 linear component
132 | Composite Symbol with GS1 DataBar-14 linear component
133 | Composite Symbol with GS1 DataBar Limited component
134 | Composite Symbol with GS1 DataBar Extended component
135 | Composite Symbol with UPC A linear component
136 | Composite Symbol with UPC E linear component
137 | Composite Symbol with GS1 DataBar-14 Stacked component
138 | Composite Symbol with GS1 DataBar-14 Stacked Omnidirectional
| component
139 | Composite Symbol with GS1 DataBar Expanded Stacked component
140 | Channel Code
141 | Code One
142 | Grid Matrix
143 | UPNQR (Univerzalnega Plačilnega Naloga QR)
145 | Rectangular Micro QR Code (rMQR)
--------------------------------------------------------------------------------
3.4.调整高度
线性符号的高度可以使用–height开关进行调整。例如:
zint --height=100 -d "This Text"
这指定符号高度为符号x分辨率的100倍。
3.5.调整空白
可以使用-w开关更改生成的条形码左右的空白量。例如:
zint -w 10 -d "This Text"
这将指定空白宽度为符号x分辨率的10倍。
3.6.添加边界条和框
Zint允许使用选项–bind将符号与“边界条”绑定。如果扫描光束偏离符号的顶部或底部,这些条有助于防止误读符号,从而破坏扫描。Zint还可以使用–box选项在符号及其空格周围设置边框。ITF-14符号自动选择此选项。
边界或框的宽度可以使用–border开关指定。
例如:
zint --box --border=10 -d "This"
给出一个宽度为符号x分辨率10倍的方框。
3.7.颜色设置
符号的默认颜色是白色背景上的黑色符号。Zint允许您更改这一点。-r开关允许反转默认颜色,以便在黑色背景上显示白色符号。例如下面的命令:
zint -r -d "This"
给出了一个颠倒的128码符号。这对于大多数符号来说是不实用的,但是数据矩阵ECC200和阿兹特克代码符号规范允许黑白。
对于更具体的需求,可以使用–fg=和–bg=选项指定前景(墨水)和背景(纸张)颜色,后面跟着一个RRGGBB十六进制记数法的数字(与HTML中使用的系统相同)。例如下面的命令:
zint --fg=004700 -d "This"
将符号改为深绿色。
3.8.旋转
符号可以通过四个方向旋转,使用–rotate=选项,后面跟着旋转角度,如下所示。此选项仅适用于光栅图像(PNG, BMP, GIF和PCX)输出。
--rotate=0 (default)
--rotate=90
--rotate=180
--rotate=270
3.9.调整图像尺寸
可以使用–scale=选项加上默认x维的倍数来改变图像的比例。默认的x尺寸是2像素。例如,对于PNG图像,5的比例将使x维度增加到10像素。
4.界面
5.总结
Zint是一款非常好用的条码生成软件,可以非常方便的生成一维和二维条码,形式上可以生成矢量图形和栅格图像,非常方便集成和批处理。