はじめに
タスクやメモ用紙等の印刷のため、EPSON製レシートプリンタ TM-T88VIの中古を購入しました。通常、プリンタへ印刷データを送るためには、プリンタドライバのインストールが必要ですが、TM-T88VIにはePOS Print XMLというXML形式でHTTP経由で印刷データを渡すことで直接プリンタに印刷することができるサービスが組み込まれています。
ePOS Print XMLとは
EPSONサイトを見て頂く方が早いかと思われます。以下の通りネットワーク上にあるレシートプリンタにXML形式のスクリプトを渡すことで印刷や用紙カット等を行ってくれます。HTTPリクエストですのでcurlや、HTTPリクエストができるAndroidアプリからも印刷を行えます
XML印刷サービス(https://www.epson.jp/products/receiptprinter/develop/xml.htm)
印刷の前提
- ePOS Print XMLに対応している機種であること(筆者は、TM-T88VIで実施)
- 有線・無線ネットワークに接続していること(筆者は、有線で実施)
- IPアドレスが振られていること(固定がおすすめ)
- ePOS Print XMLサービスが有効化されていること

印刷してみる
環境
- クライアント:Ubuntu 24.04
- プリンタ:EPSON TM-T88VI
スクリプト・コマンド
印刷データ (/usr/print/test/test.xml)
s:Envelope xmlnsのヘッダ、フッタを入れる必要がわからず最初はうまくいきませんでした。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
<text lang="ja"/>
<text font="font_a"/>
<text>Hello World</text>
<feed/>
<cut type="feed"/>
</epos-print>
</s:Body>
</s:Envelope>
印刷コマンド
curl -X POST "http://【プリンタのIPアドレス】/cgi-bin/epos/service.cgi?devid=local_printer&type=receipt&timeout=10000" -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction: \"\"" --data-binary @/usr/print/test/test.xml
印刷結果

印刷XMLデータについて
マニュアル
ドライバー・ソフトウェア基本情報(Epson ePOS-Print XML)
エプソン | 404 Not Found
エディタ
上記のソフトウェア一式にHTMLファイルが入っており、ブラウザでXMLの組み立てとテスト印字を行えます

おわりに
レシートプリンタを使ってToDoリストの印刷等を検討中です
もし余力があれば記事を公開します