标签格式和内容通过zebra designer 设置完成,已经通过打印到文件得到标签的.prn文件
prn文件内容为zpl指令。通过zebra designer 里自带的打印功能打印成功
请问如果用python 代码调用怎么发送这段zpl给打印机,如果标签上有变量值的话怎么传入,谢谢。
注:pc和打印机使用usb连接
ZPL是Zebra斑马条码打印机的编程语言,利用这编程语言,编辑好一个打印的指令集,发送给条码打印机,条码打印机就会按照你事先编辑的命令去进行打印的工作,可以用于大规模的标准化打印操作。
本文的重点不在于如何编写ZPL指令,而是说明如何使用Python进行简单的变量修改然后打印。
比如,需要使用ZPL打印“HELLO WORLD”:
^XA
^LH00,00^FS
^CWJ,E:Arial.FNT
^FO10,10^AJN,50,50^FD HELLO WORLD ^FS
^PQ1,0,0,N
^XZ
思路如下:
1、Zebra需要通过LPT或者COM连接电脑
2、ZPL指令作为一整个string,变量部分使用format进行格式化调整
4、将最终的ZPL指令保存到txt文件用于传输
3、os模块调用CMD的copy命令进行列印:copy 123.txt com1
那么代码实例如下(代码需要根据实际使用进行修正):
import os
while True:
zpl = f"""
^XA
^LH00,00^FS
^CWJ,E:Arial.FNT
^FO10,10^AJN,50,50^FD {HELLO WORLD} ^FS
^PQ1,0,0,N
^XZ
"""
with open('123.txt','wt') as fp:
fp.write(zpl)
os.system('copy 123.txt com1 >>1')
"""
>>1 由于terminal涉及中文可能出现返回信息乱码,这样可以屏蔽输出
我想到另一种解法如下,输出为英文
os.system('chcp 65001 && copy 123.txt com1')
"""
print('print OK')
if not os.path.exists("123.txt"):
print('Nothing need to be printed')
break
需要列印的变量原始数据来源可以有多种:
数据已存储到本地文件,如txt、json、csv、xls等等,Python要做的就是根据不同的文件格式进行读取
从数据库读取数据,需要点SQL基础:PyMysql => Mysql,cx_Oracle => Oracle
最简单的就是直接组成list或者dict存在Python源码内或者input()输入