前言
Epson 印表機是 POS 系統常用的印表機
因為它可以實現無驅列印,整合入嵌入式系統相對容易
而它的指令集,如果不使用特定的功能
也大多適用於其它EPSON系列的印表機
這樣對硬體更新十分方便
使用python-escpos函式庫
python-escpos集合了各種epson印表機的通訊實作
可以使用usb,serial,tcp型態的印表機
而armbiam繼承了ubuntu的血統
各種python的函式庫齊備
比起早期開發嵌入式linux方便不少
而傳統的C/C++開發成本和周期長
很容易迷失在各種技術迷宮內
產品還沒做個影,公司就倒閉的事件時有所聞
所以採用這種開放軟硬體,和方便的編程工具,已經是一種趨勢
印表機支援函式庫
基本上使用apt-get就可以滿足
嵌入式硬體開發門檻已經降低到如此程度
令人不甚唏噓sudo apt-get install pkg-config sudo apt-get install python-dev sudo apt-get install python3-dev sudo apt-get install python-pip sudo apt-get install python3-pip sudo apt-get install libjpeg8-dev sudo apt-get install sqlite3 sudo -H pip install --upgrade pip sudo -H pip install setuptools sudo -H pip install pyusb sudo -H pip install pillow sudo -H pip install pyserial sudo -H pip install viivakoodi sudo -H pip install python-escpos sudo -H pip install django==1.6.6
範例程式碼
我們使用usb版本的印表機
官網有範例指示如何指定其他型號印表機
Usb建構式最少要填入 usb 的vendor id和product id
少數情況下要指示usb的 endpoint in out節點
from escpos.printer import Usb
p = Usb(0x04b8, 0x0202, 0)
p.text("Hello World\n")
p.image("logo.gif")
p.cut()
sudo python printer.py # usb 存取需要root權限