前段时间做条码打印相关的东西,用的斑马打印机,用开源二维码生成库生成的二维码然后用winform自带打印,由于打印条码较小,打印出来的二维码比较模糊,识别率较低,发现斑马打印机自带的ZPL命令,特研究了一下。
一、ZPL简介
ZPL是斑马条码打印机的编程语言,利用zpl,编辑好一个打印的指令集,发送给条码打印机,条码打印机就会按照你事先编辑的命令去进行打印的工作。下面介绍一些简单常用的命令,写好的ZPL命令,可以在ZPL在线预览网站调试,地址:/viewer.html;
二、ZPL常用命令简介
1、^XA和^XZ
有效 ZPL 格式要求标签格式应以 ^XA 命令开始并以 ^XZ 命令结束。
2、^LHx,y
^LH 命令用于设置标签的起始位置。
标签的默认起始位置为左上角 (沿 x 轴和 y 轴的位置 0,0)。这是标签的坐标轴基准
点。此点下方和右侧的任何区域均可用于打印。 ^LH 命令可用于更改此基准点。例
如,当使用预打印标签时,使用此命令可将基准点移动到预打印区域下方。
此命令只会影响其后的字段。建议使用 ^LH 作为标签格式中优先输入的命令之一。
3、^FOx,y,z
^FO 命令用于设置字段起始位置,相当于标签起始 (^LH) 位置而言。通过沿 x
轴和 y 轴定义点 (与旋转角度无关), ^FO 可设置字段区的左上角。
4、^CFf,h,w
^CF 命令用于设置打印机使用的默认字体。
参数 f 可指定所有字母数字字段的默认字体。参数 h 是所有字母数字字段的默认高
度,而参数 w 是所有字母数字字段的默认宽度值。
5、^FD
^FD 命令用于定义字段的数据字符串。字段数据可以是除用作命令前缀 (^ 和
~)外的任意可打印字符。
6、^FS
^FS 命令用于表示字段定义已结束。或者,还可将 ^FS 命令作为单个 ASCII 控
制码 SI (Control-O、十六进制 0F)使用。
7、^BQ
生成二维码的命令,该条码使用在后续 ^FD 字符串中指定的字段数据进行打印。
格式:^BQa,b,c,d,e a = 字段方向、b = 模式、c = 放大系数、d = H、 Q、 M、 L、e = N、 A、 B.K
8、^BC
格式:^BCo,h,f,g,e,m
o = 方向: N = 正常、R = 旋转90度(顺时针)、I=反转180度、 B = 逆时针90度读取
h = 条码高度 (以点为单位)
f = 打印注释行
g = 在条码上方打印注释行
e = UCC 校验位
9、^B7
格式:^B7o,h,s,c,r,t
o = 方向
h = 各层的条码高度 (以点为单位)
s = 安全级别
c = 要编码的数据列数
r = 要编码的行数
t = 截断层右行指示符和终止图案
10、^BY
^BY 命令用于更改模块宽度 (以点为单位)、宽条与窄条的宽度比以及条码高
度 (以点为单位)的默认值。该命令可以根据需要在标签格式中多次使用。
三、例子
1、文本打印“123456ABCDEF”
^XA
^LH0,0
^FO50,20
^CF0,100,100
^FD123456ABCDEF^FS
^XZ
2、QR二维码打印“123456ABCDEF”
^XA
^LH0,0
^FO50,0
^CF0,100,90
^BQN,2,4
^FDHA,123456ABCDEF^FS
^FO160,20
^FD123456ABCDEF^FS
^XZ
3、PDF417条码打印
^XA
^LH0,0
^CF0,50,90
^FO90,75
^FD123456ABCDEF^FS
^FO150,5
^BY5,3.0,70
^B7N,,2,,,N
^FD123456ABCDEF^FS
^XZ
4、CODE128条码打印
^XA
^LH0,0
^FO100,10
^BY3,3.0,70
^BCN,,,,,
^FD123456ABCDEF^FS
^XZ
四、ZPL语言中文手册已上传,需要的,关注我后,私信发送“ZPL手册”即可自动回复。