如何从python打印中文字体到Zebra ZPL打印机?

问题描述

我的任务是开发python脚本,以使用联网的Zebra ZT410打印标签。

到目前为止,我可以使用带有ZPL命令的“ Zebra Setup Utilities”正确打印汉字:

^XA
^CW1,E:SIMSUN.TTF
^SEE:GB18030.DAT^CI26
^FO200,10^A1N,36,20^FDHTM1汉字^FS
^XZ

现在,我根据网址https://www.zebra.cn/us/en/support-downloads/knowledge-articles/ait/Network-Printing-Python-Example.html上的简单代码编辑了python代码

# -*- coding: utf-8 -*-
import socket

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('168.168.183.199',9100))
zpl = '''
^XA
^CW1,20^FDHTM1汉字^FS
^XZ
'''
s.send(zpl.encode())
s.close()

但是,启动此脚本时,标签上的汉字是混乱的代码。

The top one is printed by this python script,the bottom one is printed by "Zebra Setup Utilities".

有没有人可以给我有关如何修复此python代码的建议?

顺便说一下,我的打印机是 ZT410-300dpi,V75.20.21Z,12,4096KB ,其详细信息如下:

- DIR R:*.*
- 4171776 bytes free R: RAM

- DIR E:*.*
* E:GB18030.DAT 95760 P
* E:SIMSUN.TTF 11519056 P 1
* E:TT0003M_.TTF 169188 P
- 55322112 bytes free E: ONBOARD FLASH

- DIR B:*.*

- DIR A:*.*

- DIR Z:*.*
* Z:0.TTF 125904 P 0
* Z:A.FNT 6839 P A
* Z:ALERTCFG.NRD 5186 P
* Z:AZTEC.BAR 0 P
* Z:B.FNT 7746 P B
* Z:BLUEBCK.BMP 230454 P
* Z:BLUEBCKDARK.BMP 230454 P
* Z:BLUETOOTH.WML 7938 P
* Z:BLUETOOTH420.BMP 400 P
* Z:BLUETOOTH52.BMP 480 P
* Z:BLUETOOTHCOLOR.WML 9373 P
* Z:BLUETOOTH_ICON.BMP 128 P
* Z:BLUETOOTH_NOT_AVAILABLE_ICON.BMP 128 P
* Z:CODABAR.BAR 0 P
* Z:CODABLK.BAR 0 P
* Z:CODE11.BAR 0 P
* Z:CODE128.BAR 0 P
* Z:CODE39.BAR 0 P
* Z:CODE49.BAR 0 P
* Z:CODE93.BAR 0 P
* Z:D.FNT 10648 P CD
* Z:DATA_BLANK_ICON.BMP 128 P
* Z:DATA_ICON.BMP 128 P
* Z:DISPLYQR.WML 2996 P
* Z:DISPLYQRCOLOR.WML 3189 P
* Z:DOWN_ARROW_COLOR.BMP 166 P

解决方法

我知道了,只需将s.send(zpl.encode())替换为s.send(zpl.encode(encoding='GB18030'))

# -*- coding: utf-8 -*-
import socket

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('168.168.183.199',9100))
zpl = '''
^XA
^CW1,E:SIMSUN.TTF
^SEE:GB18030.DAT^CI26
^FO200,10^A1N,36,20^FDHTM1汉字^FS
^XZ
'''
s.send(zpl.encode(encoding='gb18030'))
s.close()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...