python 如何将 zebra 生成的.prn文件 或直接将prn文件中的zpl指令发送给斑马打印机

标签格式和内容通过zebra designer 设置完成,已经通过打印到文件得到标签的.prn文件

prn文件内容为zpl指令。通过zebra designer 里自带的打印功能打印成功

img

请问如果用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()输入

https://www.cnblogs.com/NolaLi/p/14451312.html

https://ask.csdn.net/questions/831906?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-ask-2~default~OPENSEARCH~Rate-1.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-ask-2~default~OPENSEARCH~Rate-1.pc_feed_download_top3ask