バーコードの描画(その2)

みなさま、こんにちは。しむぅです。

今回は、前回の続きでシーオーリポーツのバーコード描画について説明しようと思います。


バーコードを描画する際の設定が4種類あります。
今回は、残りの2つを書きたいと思います。

想定解像度で描画(バー幅個別詳細設定)

個々のバー幅やスペースの幅を設定します。
この描画方法では、各バー幅と、各スペースを自由に設定できますので細かい調整が可能となります。
ただし、バーコードの仕様に当てはまらないバーコードも作成することが出来てしまいますのである程度バーコードに関する知識も必要になるかと思います。

枠サイズ内で最大

フォームエディタで作成したバーコードオブジェクトの枠サイズで無理矢理描画します。
無理矢理と書いたのは、今までの3種類の描画方法は、読めるバーコードを作成すること前提で描画しますが、この方法では、自由にバーコードのサイズを指定することが出来ません。
「枠サイズ内で最大」では、読み取り精度が悪くなるかわりに指定した枠サイズで描画するようにします。

例えば、次のようなバーコードがあったとします。
細いバー幅、狭いスペースが2ピクセル、太いバー幅、広いスペースが4ピクセルです。

 ■■□□■■■■□□□□■■□□■■■■□□□□
 ■■□□■■■■□□□□■■□□■■■■□□□□
 ■■□□■■■■□□□□■■□□■■■■□□□□
 ■■□□■■■■□□□□■■□□■■■■□□□□
 ■■□□■■■■□□□□■■□□■■■■□□□□

想定解像度で描画する場合、サイズを1段階大きくするとなると細いバー幅、狭いスペースが3ピクセル、太いバー幅、広いスペースが6ピクセルになるため、全体のサイズは先ほどの1.5倍の大きさになります。

 ■■■□□□■■■■■■□□□□□□■■■□□□■■■■■■□□□□□□
 ■■■□□□■■■■■■□□□□□□■■■□□□■■■■■■□□□□□□
 ■■■□□□■■■■■■□□□□□□■■■□□□■■■■■■□□□□□□
 ■■■□□□■■■■■■□□□□□□■■■□□□■■■■■■□□□□□□
 ■■■□□□■■■■■■□□□□□□■■■□□□■■■■■■□□□□□□

ということは、この中間のサイズで出力したくても、想定解像度で描画する場合はできません。
そこで、「枠サイズ内で最大」を使用します。
「枠サイズ内で最大」を使用することで任意のサイズにすることが出来ます。

 ■■■□□■■■■□□□□□■■□□□■■■■■□□□□□
 ■■■□□■■■■□□□□□■■□□□■■■■■□□□□□
 ■■■□□■■■■□□□□□■■□□□■■■■■□□□□□
 ■■■□□■■■■□□□□□■■□□□■■■■■□□□□□
 ■■■□□■■■■□□□□□■■□□□■■■■■□□□□□

ですが、個々のバー幅やスペースの大きさを一定にすることが出来ませんので読み取り精度が悪くなってしまいます。細いバー幅でも2ピクセルのものと3ピクセルのものがでてきます。

精度が要求される場合は、やはり「枠サイズ内で最大」は使用せず「想定解像度で描画」する事をお勧めします。

バーコードは人間が読むのではなく、バーコードリーダが読むものです。
バーコードリーダで読めることを優先に設計し、運用時に使用するプリンタ、紙、バーコードリーダを使用して検証を十分にしていただきたいと思います。