pyinstaller 使用ecs/pos操作pos小票打印机

发布时间 2023-10-20 18:00:29作者: 上官飞鸿
# pyinstaller --onefile --noconsole --add-data "logo.bmp:." --add-data "D:\PythonTest\ecs_pos_print\.venv\Lib\site-packages\escpos\capabilities.json:\escpos" Main_Windows.py

简介:

python也可以操作pos小票打印机,使用串口命令来打印,打印速度和打印质量不是windows驱动打印可以比的,毕竟是使用内置字库,算是硬件打印吧。

一:安装ecspos

python-escpos/python-escpos: Python library to manipulate ESC/POS printers (github.com)

pip install python-escpos[all]

二:安装usb驱动

Zadig - USB driver installation made easy (akeo.ie)

反正就是驱动不对,esc/pos就连不上打印机,我安装libusbk才可以正常使用python-ecspos。

尽管安装libusb-win32,也可以查看到USB打印机,但是无法操作,可能是pypthon-ecspos内部实现的不同。跟着用libusbk就好了。

在设备管理器找到你的USB打印支持,硬件ID,看一下PID,VID,打开zadig,options--list all devices,下拉选择pic,vid一致的设备,然后右边选择libusbk,reinstall driver即可。

 

 

三:简单的代码

from escpos.printer import Usb

""" Seiko Epson Corp. Receipt Printer (EPSON TM-T88III) """
p = Usb(0x067B, 0x2305, 0, profile="TM-T88III")  #这里改VID,PID
p.text("Hello World\n")
p.image("logo.gif")
p.barcode('4006381333931', 'EAN13', 64, 2, '', '')
p.cut()

注意改VID,PID.

四:pyinstaller打包

直接打包后提示我

escpos\capabilities.json 找不到

所以增加静态文件

# pyinstaller --onefile --noconsole --add-data "logo.bmp:." --add-data "D:\PythonTest\ecs_pos_print\.venv\Lib\site-packages\escpos\capabilities.json:\escpos" Main_Windows.py

这个logo是需要打印的,所以也打包进去,这个json就是提示找不到的文件。

--add-data  原文件路径:目标路径。

logo.bmp,我直接打包进根目录

json则是打包到\escpos目录。

打包完成后可以正常打开exe文件了。