Help us understand the problem. What is going on with this article?

簡単 (電子) レシート receiptline の新機能を試してみた

マークダウン言語で紙のレシートや電子レシートを簡単に作れる 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 どの環境でも同じ表示になるはずです。
00.png

データは過去の記事から。

ReceiptLine
{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 接続モデルで、店舗で予備機として保管されていたものだそうです。
01.jpg

仮想シリアルポートの設定

RP-E10 用「SII RP Series Communication Software for Windows」をインストール。
02.png

「RP通信設定ユーティリティ」で仮想シリアルポートドライバーに切り替え。
03.png

CT-S255 用「シチズンサーマルプリンタ仮想 COM ポートドライバー」をインストール。
04.png

デバイスマネージャーで確認。RP-E10 は「COM3」、CT-S255 は「COM7」になりました。
05.png

Serial-LAN Converter の設定

servers.json で、 COM3 (または COM7) と TCP 9100 ポートをつなぎます。

servers.json
"serial": {
    "host": "127.0.0.1",
    "port": 9100,
    "device": "COM3"
}

ReceiptLine Designer の設定

printers.json に、RP-E10 と CT-S255 を登録。localhost がプリンターになります。

printers.json
{
    "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

06.jpg

新しい印刷オプション

printers.json で行間隔と用紙カットの有無が選択できるようになりました。

行間隔

spacingtrue にすると、行間が空いて読みやすくなります。
ただし、罫線もしくは縦倍角以上の拡大文字がある行の間隔は変わりません。
07.jpg
ちなみに、前々回の記事は、上下反転印刷に対応できない中途半端な改造でした…

用紙カット

cuttingfalse にすると、印刷完了後に自動カットされなくなります。
08.jpg

また何か作ったら投稿します。ではまた!

dopperi46
1を100にするよりも0を1にするのが得意。どっぺり坂は繁華街への近道で及第点に1つ足りない59段。この繁華街が拠点の柳都葱沼にハマる。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away