【发布时间】:2020-08-09 05:02:35
【问题描述】:
我使用的是 Epson TM-T20II 热敏收据打印机,我需要打印带有丹麦字符(æ、ø、å)的收据。用于字符语言选择的 ESCPOS 代码描述为here。我的 Python 代码如下
import win32print
import six
#create some raw data
rawdata = b'\x1b\x40' #Instantiate the printer ESC @
rawdata = rawdata + b'\x1b\x52\x10' #Select the Danish II character set as in documentation ESC R
where n = 10
rawdata = bytes('Print æ,ø,å', 'utf-8') + b'\n' + b'\x1d\x56' + six.int2byte(66) + b'\x00' #print
some text and cut
#Creating the printing job in Windows 10 and send the raw text to the printer driver
printer = win32print.OpenPrinter('EPSON TM-T20II Receipt')
hJob = win32print.StartDocPrinter(printer, 1, ("Test print", None, "RAW"))
win32print.WritePrinter(printer, rawdata)
win32print.EndPagePrinter(printer)
win32print.ClosePrinter(printer)
我的问题是打印出一些奇怪的字符。我还通过按住进纸按钮并打开打印机电源将打印机设置为丹麦 II。我错过了什么?
【问题讨论】:
-
您希望 TM-T20II 用作 Windows 标准桌面页面打印机吗?如果没有,请将打印机更改为串口模式,重新安装设备驱动程序,并发送带有pyserial或python-escpos的ESC/POS命令。
-
没有。我知道 python-escpos,但它并没有我的所有需求。例如,据我所知,python-escpos 不支持丹麦语字符。
-
如果 python-escpos 缺少功能,您应该修改它以添加功能,或者切换到 pyserial 并自己创建和发送所有 ESCPOS 命令。使用pyserial与使用原始模式下您在问题中编写的win32print不一样吗?
标签: python-3.x epson pos escpos