2
2

More than 3 years have passed since last update.

簡単レシート印刷 receiptline でバーコードと QR コードを作ってみた

Posted at

日本発のオープンソース receiptline でレシート印刷に少しずつトライしています。

ネットオークションやフリマアプリでレシートプリンターを探していましたが・・・
とうとう何台か落札することができました!

まだ手元にないので、前回利用した開発ツールを引き続き使います。
今回はバーコードと QR コードです。

01.png

バーコード

バーコードアイコンをクリックすると、ダイアログボックスが開きます。

02.png

適当にデータを入れて、サイズと可読文字の有無を選びましょう。

ここは無難にデフォルト設定の CODE128 にしておきます。
CODE128 は「〇〇 Pay」のバーコードに使われているそうです。

キャンセルしたいときは、ダイアログボックスの外をクリックします。

03.png

編集エリアに code プロパティと option プロパティが追加されました。

code プロパティは、バーコードを出力します。
名前は code または c、値はバーコードデータです。

option プロパティは、この行以降のバーコードを設定します。
名前は option または o、値はバーコードオプションです。
複数のオプション値は , or 1 つ以上のスペースで区切ります。

ReceiptLine
{code:WIND402; option:code128,2,72,hri}

04.png

QR コード

二次元コードアイコンをクリックすると、ダイアログボックスが開きます。

05.png

二次元コードは QR コードのみです。
適当にデータを入れて、サイズと誤り訂正レベルを選択します。

キャンセルしたいときは、ダイアログボックスの外をクリックします。

06.png

編集エリアに code プロパティと option プロパティが挿入されました。

二次元コードのプロパティはバーコードと同じです。
option プロパティの値は QR コード用になっていますね。

ReceiptLine
{code:Do it! Make it! Shake it!; option:qrcode,5,M}

07.png

バーコードの位置揃え

文字列と同様に、テーブルの区切り文字 | で位置揃えができます。
バーコードと QR コードを、左揃えと右揃えにしてみます。

code プロパティと option プロパティを分離して、短縮名を使います。
また、クワイエットゾーンが必要なので、間隔を1行ずつ空けることにします。

ReceiptLine
{o:code128,2,72,hri}
|{c:WIND402}

{c:WIND402}|
=

{o:qrcode,5,M}
|{c:Do it! Make it! Shake it!}

{c:Do it! Make it! Shake it!}|

08.png

ちなみに、バーコードと QR コードは、2 列にしたり罫線を引いたりすることができません。
この制約はレシートプリンターのコマンド仕様に由来するようです。

バーコードの種類

code プロパティと option プロパティの対応をまとめました。

種類 option code 使い道
CODE128 code128 ASCII 文字列 コード決済
CODE93 code93 ASCII 文字列 ???
NW-7
(Codabar)
nw7
codabar
数字と一部の記号
(先頭と末尾は ABCD)
宅配伝票
ITF
(Interleaved 2 of 5)
itf 偶数桁の数字 段ボール箱
CODE39 code39 英数字と一部の記号 現品票
JAN
(EAN)
jan
ean
13 桁の数字
8 桁の数字
商品
UPC-A
UPC-E
upc 12 桁の数字
7 桁の数字
北米の商品
QR Code qrcode ASCII 文字列
漢字
続きは Web で

次回は、変換ライブラリの API を試してみようと思います。

2
2
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
2
2