ZPL Notes
Posted on 25/04/2020ZPL 是什么
ZPL ( Zebra Programming Language )是斑马公司( Zebra Technologies )的一个页面描述语言( page description language ),该语言主要用于打印标签。目前的版本是 ZIP II。
该语言主要由命令(command)和控制符( control character )组成的文本,
- 命令:语法形式为命令 + 参数,命令是以 caret(
^) 开头,参数是一系列以逗号分割的字符,目前大约有170多种命令。比如可以通过^ADN,n,m命令控制字体的大小,其中n和m分别代表字体大小和子间距,^ADN,18,10就代表最小可设置值,^ADN,180,100代表最大可设置值。 - 控制符:以 tilde(
~) 开头。
总是以 ^XA 开头,以 ^XZ 结尾,示例如下:
^XA
^FO20,10
^ADN,90,50
^FDWikipedia^FS
^XZ
上述代码最终显示效果如下:

常用命令
^XA:表示 ZPL 的开头^XZ:表示 ZPL 的结尾^LH:Label Home,用法:^LHx,y。用于设置标签的坐标原点,标签的坐标原点默认在左上角(0, 0),通过本标签设置其他命令位置的参考点。^FO: Field Origin,设置相对于^LH的 Filed 位置。用于控制标签的位置,用法^FOx,y,z, 其中 x 表示x方向的点数,取值范围为 0-32000,默认值为0,y值表示y方向的点数。^FT: Field Typeset,与^FO的意义相同?^FD:Field Data,表示要在 Field 中展示的数据。^FS: Field Separator,表示一个 Field 的结束,一个 Field 以^FO或^FT开头,以^FS结束。^CI:Change International Font/Encoding,用于非 ascii 字符的显示,比如^CI28就可以显示 utf-8 的中文字符。
方框和线
^GB 是用于生成方框或直线的命令,语法为:^GBw,h,t,c,r,各个参数及其意义如下表:
| 参数 | 解释 |
|---|---|
| w = box width (in dots) | values: t 至 32000 defalut:t 或 1 |
| h = box height | values: t 至 32000 defalut:t 或 1 |
| t = border thickness | values: 1 to 32000 default: 1 |
| c = line color | values: B = black W = white default: B |
| r = degree of conerrounding | values: 0(no rounding) to 8 (heavies rounding) defalut: 0 |
注意尺寸参数是以点来表示的,实际长度取决于打印机设置的分辨率。
示例:

Code39
Code39 条形码是许多行业的标准,其中就包含美国国防部。生成该条形码的命令是 ^B3,语法为: ^B3o,e,h,f,g,各个参数及其意义如下:
| 参数 | 解释 |
|---|---|
| o = orientation | values: N = normal R = rotated 90 degrees I = inverted 180 degrees B = read from bottom up, 270 degrees defult: current ^FW value |
| e = mod - 43 check digit | values: Y = yes N = no default: N |
| h = bar code height(in dots) | values: 1 to 32000 default: values set by ^BY |
| f = print interpretation line | values: Y = yes N = no defalut: Y |
| g = print interpretation line above code | values: Y = yes N = no defalut: N |
示例:

二维码
生成二维码的命令为 ^BQ,语法为:^BQa,b,c,d,e,各个参数的意义如下:
| 参数 | 解释 |
|---|---|
| a = field orientation | values: N |
| b = model | values: 1(original), 2(enhanced) default: 2 |
| c = magnification factor | vaules: 1 - 10 default: 1 on 150 dpi printers 2 on 200 dpi printers … |
| d = error correction | values: H = ultra -high reliability level Q = high reliability level M = standard level L = high density level default: Q = if empty M = invalid values |
| e = mask value | values: 0 - 7 defalue: 7 |
二维码所表示的数据是紧邻 ^BQ 命令之后的第一个 ^FD 命令中的文本内容。此时 ^FD 命令有4个开关参数,其中两个是必选,一个是可选,另一个是根据一个选项的取值决定。这4个开关分别是:
- 混合模式:
<D>,, optional - 纠错级别:
<H, Q, M, L>mandatory - 数据输入:
<A, M>,, mandatory - 字符模式
<N, A, Bdddd, K>,如果数据输入模式为M,则必选,否则为可选。
示例:
^XA
^FO100,100
^BQN,2,10
^FDMM,AZPL II BQ command^FS
^XZ

参考资料: