引言
众所周知,之所以安装打印机驱动,一个重要的原因就是打印机厂商千差万别,不同的打印机往往都有各自的驱动,很难实现万能驱动。但是,在 POS 打印机行业却有一条捷径,就是现在市面上的 POS 打印机基本上都支持爱普生指令,也就是说,只要将程序和打印机联通,直接向端口里面写爱普生指令就可以控制打印机。打印机接受到爱普生指令以后,自行进行解析,然后打印出相应的内容。—— Java 实现 POS 打印机无驱打印
python-escpos是一个可以让用户来访问那些支持ESC/POS命令的打印机的Python库。因此利用它即可完成实现在树莓派下的无驱打印功能。
本文在 Raspbian上测试通过。
需要安装的依赖软件
PyUSB
PyUSB 1.0 并不是Ubuntu的标配软件,需要手动下载和安装:
1、从Sourceforge 上面下载最新的tarbell
2、解压zip文件
3、安装库
> wget ... > unzip pyusb*.zip > cd pyusb* > python setup.py build > sudo python setup.py install
python-qrcode
> git clone https://github.com/lincolnloop/python-qrcode > cd python-qrcode > python setup.py build > sudo python setup.py install
安装
escpos 1.0-1
> wget http://python-escpos.googlecode.com/files/python-escpos-1.0.tgz > tar zxvf python-escpos-1.0.tgz > cd python-escpos-1.0 > python setup.py build > sudo python setup.py install
阅读ESCPOS中的README,设置打印机并打印。
1、需要安装的软件
* pyusb (python-usb)
* PIL (Python Image Library)
可以使用命令
apt-get install python-imaging python-usb python2.7-usbtc08 python-serial
2、定义打印机
用命令 “lsusb” 获取到当前打印机的"Vendor ID" 和"Product ID"
假如获取到的是0x04b8:0x0202,
3、定义打印机实例
输入下述代码,用python执行:
from escpos import *
""" Seiko Epson Corp. Receipt Printer M129 Definitions (EPSON TM-T88IV) """
Epson = escpos.Escpos(0x04b8,0x0202,0)
Epson.text("Hello World")
Epson.image("logo.gif")
Epson.barcode
Epson.barcode('1324354657687','EAN13',64,2,'','')
Epson.cut()
如果一切正常,则打印出“Hello World”以及一副图片,还有条形码。
参考文献:
https://code.google.com/p/python-escpos/wiki/RaspberryPi
https://code.google.com/p/python-escpos/wiki/Usage