マークダウン言語で紙のレシートや電子レシートを簡単に作れる receiptline。
https://github.com/receiptline/receiptline
https://www.npmjs.com/package/receiptline
少し前にマイナーバージョンアップがあったので、新機能を試してみました。
(2020年11月21日時点で Verion 1.1.1)
Web フォントで表示
前回の記事で試していた Google Fonts の「Kosugi Maru」が採用されました。
これで iOS, Android, Windows, Linux, Mac どの環境でも同じ表示になるはずです。
データは過去の記事から。
{image:iVBORw0KGgoAAAANSUhEUgAAASAAAAAwAQMAAACL7DXsAAAABlBMVEUAAAD///+l2Z/dAAABqElEQVQ4y+3VMW7bMBQGYLIqwqUo10ymj5AxBQwouUmO0NEFBFOCBo05Qs7QG5DV0K1noOGhKwMvLEDw7yOVALEUIB46BdUofJTe+x8pMZxxsXeFol4gJucm1HMUopght0SPmCO2RCOGGTJLNBB783UShzladidxfBMluYjpFaT+FYqEKE4O/8VtRA7WrRO8Sl+pEIPWq2Nd0LGPHvc81CJYYGgTfslwdy2wql1UP1RBv+2foFVHaO8AaYAHYW4uq1hLF1dsQj/tY9wpS2j0hAgq4TZVXkVP+jChwfrU1BPSSTkkJfxO2KAHQv1U04P1OhbUMh0z0oQk3e0zmrpD50UoqKdWCSGdopxT4oGfojBDNBZvIztF4ynKA95bsG1B3RMaFugw2qPfqmeUI5AzNODQU06NzMgkqpm6m9BTBGX7jn33PTYUy0qYBqki9PmiIApzW9Aeol1fxcR45MJxmjlDYm1GNBb/saDQCHO3/QZ2GyvuK6BdK/AuI6yU/yT6cjjVPqQK1kKqSIE42vPDwVxWTBvEzY69POb2nG/Bf4T2HMT0u/sj/AWoqMYMK2VNkgAAAABJRU5ErkJggg==}|
^^領収書|
2020/07/20 01:23|
#NGC17TH|
缶ビール | ¥211~
シュークリーム | ¥129*
-
小計 | ¥340~
(10%対象 | ¥211)
( 8%対象 | ¥129)
(内消費税等 | ¥28)
^合計 | ^¥340
お 預 り | ¥1,000
お 釣 り | ¥660
*印は軽減税率対象商品です。
USB (Bluetooth) プリンターで印刷
仮想シリアルポート対応 USB (Bluetooth) プリンターでテスト印刷できるようになりました。
そこで、ネットオークションで新たに SII RP-E10 と CITIZEN CT-S255 を入手。
どちらも USB 接続モデルで、店舗で予備機として保管されていたものだそうです。
仮想シリアルポートの設定
RP-E10 用「SII RP Series Communication Software for Windows」をインストール。
「RP通信設定ユーティリティ」で仮想シリアルポートドライバーに切り替え。
CT-S255 用「シチズンサーマルプリンタ仮想 COM ポートドライバー」をインストール。
デバイスマネージャーで確認。RP-E10 は「COM3」、CT-S255 は「COM7」になりました。
Serial-LAN Converter の設定
servers.json
で、 COM3
(または COM7
) と TCP 9100
ポートをつなぎます。
"serial": {
"host": "127.0.0.1",
"port": 9100,
"device": "COM3"
}
ReceiptLine Designer の設定
printers.json
に、RP-E10 と CT-S255 を登録。localhost
がプリンターになります。
{
"rp_e10": {
"host": "127.0.0.1",
"port": 9100,
"cpl": 48,
"encoding": "cp932",
"gamma": 1.8,
"upsideDown": false,
"spacing": false,
"cutting": true,
"command": "sii"
},
"ct_s255": {
"host": "127.0.0.1",
"port": 9100,
"cpl": 48,
"encoding": "cp932",
"gamma": 1.8,
"upsideDown": true,
"spacing": false,
"cutting": true,
"command": "escpos"
}
}
テスト印刷
Node.js でサーバーを起動。ReceiptLine Designer で印刷できました。
この開発ツールの使い方はこちら。
$ node designer.js
新しい印刷オプション
printers.json
で行間隔と用紙カットの有無が選択できるようになりました。
行間隔
spacing
を true
にすると、行間が空いて読みやすくなります。
ただし、罫線もしくは縦倍角以上の拡大文字がある行の間隔は変わりません。
ちなみに、前々回の記事は、上下反転印刷に対応できない中途半端な改造でした…
用紙カット
cutting
を false
にすると、印刷完了後に自動カットされなくなります。
また何か作ったら投稿します。ではまた!