利用树莓派完成热敏打印机的无驱打印

引言


“热敏打印机的工作原理是打印头上安装有半导体加热元件,打印头加热并接触热敏打印纸后就可以打印出需要的图案,其原理与热敏式传真机类似。图象是通过加热,在膜中产生化学反应而生成的。这种热敏打印机化学反应是在一定的温度下进行的。高温会加速这种化学反应。当温度低于60℃时,纸需要经过相当长,甚至长达几年的时间才能变成深色;而当温度为200℃时,这种反映会在几微秒内完成。”——百度百科

众所周知,之所以安装打印机驱动,一个重要的原因就是打印机厂商千差万别,不同的打印机往往都有各自的驱动,很难实现万能驱动。但是,在 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

你可能感兴趣的:(python,树莓派,无驱,热敏打印机)