香澄派整合epson印表機

前言

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權限