バーコードの描画

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

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


シーオーリポーツでは、バーコードを描画する際、解像度を意識する必要があります。
これは、 出力機器(デバイス)の表示の最小単位(画素)がピクセルだからです。
最小単位が1ピクセルなので、1ピクセルよりも小さい点は打てないということになります。

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

想定解像度で描画(デフォルトの微調整方法)

レイヤのプロパティで設定する「想定解像度」を基準にして描画します。
フォームエディタ上でバーコードを作成する時点では、実際に出力するプリンタの解像度はわかりませんので、あらかじめ、レイヤのプロパティに基準となる解像度を設定するのです。

この描画方法では、各バー幅の比率、各スペースの比率を同じにするように処理します。

例えば、フォームエディタ上でバーコードフィールドの幅を広げる場合(■ や □ が1ピクセル)

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

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

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

このように段階的にサイズが変わることになります。 
そのため、自由なサイズでは作成できません。
 

想定解像度で描画(簡易微調整方法)

想定解像度で描画(デフォルトの微調整方法)の場合は、印刷した際のインクのにじみやトナーの飛び散りなどでバーの太さが変わってしまっても補正することが出来ません。

簡単に補正をするために使用してください。

例えば、何も補正しなかった場合に以下のように印刷をするとします。

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

しかし、印刷したらインクがにじんでしまいバー幅が1ピクセル分太くなってしまったとします。
実際、右側だけにじむことはありませんが、イメージということでお願いします。
(● が にじんだ1ピクセル)

 ■■●□■■■■●□□□■■●□■■■■●□□□
 ■■●□■■■■●□□□■■●□■■■■●□□□
 ■■●□■■■■●□□□■■●□■■■■●□□□
 ■■●□■■■■●□□□■■●□■■■■●□□□
 ■■●□■■■■●□□□■■●□■■■■●□□□

このままでは、スペースの間隔が狭くなってしまい、バーコードリーダで読み取ることが出来ません。
そこで、「スペースに対するバーの調整値」に「-1」を設定します。

バーコード全体の幅は調整値を指定しても変わりません。調整値を指定すると各バー幅が変更され、バーコード全体の幅が変わらないようスペースの幅も調整されます。

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

この状態で印刷を行なうと

 ■●□□□■■■●□□□□■●□□■■■●□□□□
 ■●□□□■■■●□□□□■●□□■■■●□□□□
 ■●□□□■■■●□□□□■●□□■■■●□□□□
 ■●□□□■■■●□□□□■●□□■■■●□□□□
 ■●□□□■■■●□□□□■●□□■■■●□□□□

このように、インクがにじんだことによって読み取れるバーコードになるというわけです。
実際、右側だけにじむことはありませんが、イメージということでお願いします。