TOPページ / 徒然なるままに

2015/01/25(日)

Raspberry PiでPOSプリンタ EPSON TM-T88IVからレシート出力

TM-T88IV最近IT関連で新しいガジェットに手を出していないな。と考えていたところ、そういえば大分前にレシートプリンタに手を出そうと思ったものの手を出さずにいたなと思い出しレシートプリンタEPSON TM-T80IV(LAN接続タイプ)を手に入れてみました。
最新のレシートプリンタはXMLデータを送信すれば出力できる機能をもつ機種もあるそうですがその分値段が高い。TM-T88V-iで安い所をさがしても約10万円、上位機種はもっと高価。
OPOS等もあり大手が採用している高機能なものはMicrosoft WindowsベースのPOSシステムが多い気がするのですが、これをLinuxでコントロールできないものかと。しかも超小型コンピュータボードRaspberry Piでコントロールできないものかと考えたわけです。
該当機種、事前にLinux用のドライバが提供されていることを確認していたのですが、購入してからRaspberry Piで利用できる(ARMアーキテクチャ用)ドライバが無いことに気付くという。それでもRaspberry Piでコントロールできないか探してみたところ、ESC/POSコマンドで利用できると判明。
ESC/POSコマンドはレシートプリンタのデファクトスタンダードのよう、EPSONに限らず他のメーカーでも互換機能が提供されているよう。つまりESC/POSコマンドを利用したプログラムであれば様々なレシートプリンタをコントロールできるということにも。
ネットワーク系機器におけるCiscoSystemsCisco IOSにあたるのがレシートプリンタ系におけるEPSONのESC/POS(ドットインパクトプリンタ系のESC/Pも)といったところでしょうか。
まず、Raspberry Pi上でも動作しLAN接続のレシートプリンタにも対応する、python-escposというライブラリが公開されていることを知り利用してみたのですが日本語の出力ができない。Pythonには詳しくないのですがソースコードを見た所、日本語の文字コード変換指定に問題があるのと、日本語のプリンタ組込フォントを操作する機能がない仕様な気がします。しかし、そのソースコードのおかげでESC/POSの仕組みを短時間で理解できた気もします。
仕組みを理解すれば、他のプログラミング言語でもESC/POSのコントロールができる事も理解。(LAN接続タイプであればWeb系プログラミング言語でESC/POSコマンドを利用して直接コントロール可能な事も確認。)
とりあえず、ESC/POSで思った通りに出力できれば何とでもなると考え試行錯誤。うまくいった感じです。
レシートプリンタとして利用となると何も思いつきませんが、TM-L90ラベルプリンターも同様の仕組みでコントロールできるようですし、ペーパレスではないけれどいろいろと活用できそうな・・・できなさそうな。
とりあえず、IT技術系はできることを増やしておけば、何か関連するアイデアを思いついた時に対応できるという気がしているわけで、今後も安価で遊べそうなネタがあれば色々とチャレンジしてみたい(最近安価で惹かれるネタが少ない)と思う今日このごろです。


Blog

CCNA(Cisco Certified Network Associate)取得を目指している取得した取得後有効期限満了したぎりぎり20代30代突入30代30代後半40代突入管理人のブログです。

Recent Entries

Google Maps API

googlemap.jpg
地図 ブログ

 

Twitter

Category

Monthly Archives