1 印刷方式
打印机采用多种端口进行通讯,只需通过串口/USB口/网口/蓝牙口直接向打印机发送命令串即可。
1.世界你好!
操作说明:
^XA
^JMA^LL200^PW680^MD10^PR2^PON^LRN^LH0,0
^FO10,30
^A0N,72,72
^FD 你好世界! ^FS
^XZ
实现效果:
阐明:
打印机的命令以“^”开头,任何打印命令都是从^XA开始,以^XZ结束。指令的参数直接放在指令后面,如指令
^^FS
^FD是字符串的开头,^FS是字符串的结尾,表示要打印的字符串
以上
^FD 你好世界! ^FS
这意味着要打印的指定字符串是“Hello World!” (是的,包括前面的空格)
同时,要打印字符,首先要指定其坐标(如^FO10,30)和字体参数(如^A0N,72,72)
^FOx,y
x代表横坐标,y代表纵坐标,如果把x的值改为20,那么“Hello World!” 会向右移动一定的距离。
^Aab,c,d
^A有四个参数a、b、c、d
a、字体类型,取值范围为[0-9,AZ],0为默认内置字体,如果需要其他字体则需要设置,这将在打印中文章节中进行说明。
b、旋转角度,注意参数a和b之间没有逗号,有四个选项[N、R、I、B],分别代表正常、顺时针旋转90°、180°、270°。
c、字符高度
d、字符宽度
^JMA^LL200^PW680^MD10^PR2^PON^LRN^LH0,0
该命令设置打印机的参数,可以拆分如下:
^JMA ——每毫米设定点,可选参数[A,B],A表示[24点/毫米、12点/毫米、8点/毫米或6点/毫米],B表示[12点/毫米], 6 点/毫米、4 点/毫米或 3 点/毫米],默认 A
^LL200——标签高度,这里是20mm
^PW680——标签宽度,这里是68mm
^MD10 —— 标签深度,可选值[-30~30],值越高,标签密度越高
^PR2 ——打印速度,实际上这是一个多参数命令,^PRa,b,c,如果b和c不设置,则为默认值。 其中a为打印速度,可选值[1-14,AE],值越大速度越快,其中字母[2=A,3=B,4=C,6=D ,8=E],即设置A与设置2没有区别。b和c的参数用于设置滚出和回滚速度,默认即可。
^PON ——打印方向,有[N,I]两个值可选,N为正常,I为反转(标签底部在前)
^LRN ——反向打印,有两个值[Y,N]可选,N为普通,Y表示会在黑底上产生白色字符(需要先画一个黑色填充框)
比如下面的命令:
^XA
^JMA^LL200^PW680^MD30^PR2^PON^LRY^LH0,0
^FO8,28
^GB400,50,100^FS
^FO10,30
^A0N,72,72
^FD 你好世界! ^FS
^XZ
将打印:
^LH0,0 - 标签起点
2.打印汉字
操作说明:
^XA
^参见:.DAT^FS
^CWZ,E:.FNT
^CI26
^JMA^LL200^PW680^MD10^RP2^PON^LRN^LH0,0
^FO20,100
^AZN,72,72
^FD 123 文本 ABC 测试^FS
^PQ1
^XZ
影响:
阐明:
汉字的打印需要预先设置字库,传输时需要采用编码方式进行传输,否则会出现乱码。
^AZN,72,72
注意第一个参数Z,表示使用我们自己设置的Z字体,72代表字体的大小。 由于使用的是位图字体,所以这里的大小必须是24的整数倍。
^参见:.DAT^FS
该命令有三个参数
^SEa:bc
参数a表示本地编码表的选择,可选值为[R,E,B,A]。 这四个参数的取值定义暂时没有详细信息,已知是用来区分ZPL命令和ZPL II命令的。 默认为R,这里使用E。
参数b代表代码的名称,目前在网上查到的资料中使用的就是这个,暂时没有找到其他的代码。
参数c代表编码的后缀名,通常是DAT。
^CWZ,E:.FNT
该命令有4个参数
^CWa,b:cd
参数a代表设置的字体编号,可选值[AZ和0-9],设置在这里时,^A的第一个参数可以引用该字体。
参数b与^SE的参数a相同。
参数c代表字体名称,这里是Song,可以参考
尝试设置更多字体类型,但打印时没有任何区别。
参数d代表字体后缀名,通常为FNT。
在发送打印命令时,由于打印命令是通过读取txt来发送的,所以需要检查文本文档的编码是否为UTF-8。 方法是点击文件-另存为时检查编码
另外在开头添加编码指令
如果不是UTF-8,可能会出现乱码。
代码:
运行前需要导入。
PS:由于前期无法使用py2.7指定发送的编码方式,因此建议使用py3.7并指定发送的编码方式为
。写(。(''))
3.打印中文二维码
^XA
^JMA^LL450^PW700^MD0^PR3^PON^LRN^LH0,0
^CI26
^FO200,30
^BQN,2,10
^FDHM,B0200中文测试! 123#测试¥ABC%测试^FS
^XZ
阐明:
有时二维码无法扫描,需要拿得远一点才能扫描。 而且,打印机打印汉字后,需要重新启动打印机,清除缓存后再打印。
.7 二维码不能通过txt打印,必须通过字符串打印。 代码如下:
#!/usr/bin/env
# -*- : cp936 -*-
# -*- : utf-8 -*-
#打印机需要重启,可能是清除缓存
# 打开串口
="COM3" #串口
=9600#波特率
血清=.(,,=0.5)
print "参数设置:串口=%s \n 波特率=%d" %(,)
='''
^XA
^JMA^LL450^PW700^MD0^PR3^PON^LRN^LH0,0
^CI26
^FO200,30
^BQN,2,10
^FDHM,B0200中文测试! 123#测试¥ABC%测试^FS
^XZ'''
打印
爵士写()
爵士关闭()
其中^BQN,2,10为指定二维码,指令格式如下:
^BQa,b,c
a代表二维码的方向,默认为N
b代表二维码的版本,可选值为[1,2],1为原始版本,2为增强版本,推荐2,因为1无法扫描。
c表示二维码的放大程度,可选值[1-10]
注意,二维码的打印也需要配合^FD。 当我们使用^BQ功能时,^FD必须设置相关参数
^FDab,cd^FS
a:纠错率,[H,Q,M,L] H为超高可靠性,L为高密度,建议使用H
b:数据输入模式,[A,M] A为自动模式(参数c可省略),M为手动模式(需要指定参数c的字符类型)
c:字符模式,[N]数字,[A]字符,[B]字节,[K]汉字(日语汉字)
d:二维码的内容
4. 模板
由于编码问题,在一页上同时保留中文二维码和汉字需要很长时间,所以考虑只保留汉字而不使用中文二维码。
操作说明:
^XA
^参见:.DAT^FS
^CWZ,E:.FNT
^JMA^LL800^PW700^MD0^PR3^PON^LRN^LH0,0
^CI26
^FO180,50^A0N,130,130
^^FS
^FO600,50^AZN,96,96
^FD化妆^FS
^FO600,50^GB95,95,1^FS
^FO0,200^A0N,80,80
^^FS
^FO500,220^A0N,70,70
^^FS
^FO0,300^A0N,80,80
^^FS
^FO550,300^A0N,70,70
^FDNo.1^FS
^FO0,450^AZN,48,48
^FD毛重:478.03克^FS
^FO0,500^AZN,48,48
^FD 皮重:178.03 g^FS
^FO0,550^AZN,48,48
^FD净重:300.00克^FS
^FO380,400
^BQN,2,6
^FDHM,B0200 1234##AB123##No.1#pi478.03g#.03g#.00g^FS
^PQ1
^XZ
--------------------