LoginSignup
8
5

More than 3 years have passed since last update.

簡単レシート印刷 receiptline を導入してみた

Last updated at Posted at 2020-07-13

街のお店で iPad のレジをよく見かけるようになりましたね。
一般的にタブレット POS と呼ばれています。

おかげで?レシートプリンターがネットオークションやフリマアプリに出品されるようになりました。
業務用ってワクワクしませんか?個人でも利用できる業務用スーパーも人気がありますよね。

ネットには Raspberry Pi でレシートプリンターの制御にチャレンジしたブログもあって楽しそうです。
レシートプリンターの落札を試みつつ、レシート印刷にトライしてみようと思います。

レシートプリンターで印刷するには

レシートプリンターで印刷する手段はいろいろあるので、独断で整理してみました。

  • デスクトップアプリ向け
    • Windows プリンタードライバー
    • Linux や Mac の CUPS ドライバー
  • スマートフォン・タブレットアプリ向け
    • iOS 用 SDK ライブラリ
    • Android 用 SDK ライブラリ
  • コンソールとエスケープシーケンスが好きな人向け
    • StarPRNT コマンド
    • ESC/POS コマンド
  • 玄人向け
    • OPOS (Win32, .NET)
    • JavaPOS
  • オープンソース
    • GitHub に多数
    • Python, JavaScript, Java, PHP, Ruby, Go, ...

メーカーさんが提供しているものは、ドキュメントもサポートも充実しています。
ここで記事にする意味があるのは、オープンソース一択と言えると思います。

多種多様なオープンソースの中に、日本発のプロジェクトもありました。
https://github.com/receiptline/receiptline

JavaScript / Node.js の変換ライブラリです。
テキストを入力すると、SVG 画像やレシートプリンターのコマンドを出力します。
アスキーアート的に文字を並べると清書してくれるイメージですね。

おまけにプレビューできる開発ツールが付いています。
プレビューに対応する印刷手段は意外に少ないかもしれません。
これならレシートプリンターを持っていなくても試すことができます。

receiptline をセットアップ

開発する人

npm でインストール・実行して、http://localhost:10080/ を開きます。
https://www.npmjs.com/package/receiptline

$ npm i receiptline
$ cd node_modules/receiptline
$ npm start

一般の人

GitHub からダウンロード・展開して、designer/index.html を開きます。
https://github.com/receiptline/receiptline

hello, world!

開発ツールを使ってみましょう。

01.png

左側の黒い編集エリアに文字を入力してみます。
編集エリアの文字の大きさは Zoom スライダーで適当に調節。

ReceiptLine
hello, world!

入力すると、右側の白いレシート用紙にプレビューが表示されます。
文字列はレシート用紙の中央に配置されました。

02.png

レシート用紙の幅は Width スライダーで変更することができます。
単位はインチ・ミリではなく文字数 (桁数) となっています。

03.png

財布の中に入っていたレシートの多くは、1 行あたり漢字 16 文字 (32 桁) でした。
ところが、文字数が違うレシートや、幅広のレシートも・・・

混沌のレシート世界

昔の明和電機社長ブログから引用。
“レシートの印刷の大混乱ぶり、どうにかならんものか・・・”
https://www.maywadenki.com/blog/2011/05/17/post-bbf8/

これは今でも変わっていないと思います。
果たして混沌のレシート世界に秩序をもたらすことができるのか?

次回は文字装飾を試してみようと思います。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5