|
バーコードとは、複数の棒(バー)でコードを表すのはお分かりと思います。
バーコードには色々な種類があり、ここでは「NW-7」について取り上げています(バーコードの中でも簡単な部類)。
NW-7は4本のバーと3本のスペースの合計7本で一つのキャラクタを構成しています
(余談・・・NW-7の由来が7本の細・太線で構成されているのでそう呼ばれているらしい)。
■キャラクタの表し方
とりあえず一番重要となる、どのようにしてバーでキャラクタを表すかを説明します。
これさえ理解してしまえば他の種類のバーコード(JAN-8,JAN-13,CODE-39...)も同様の方法で実現する事ができます。
'----------------------------------------
' バーコードタイプキャラクタ配列初期設定
'----------------------------------------
'****************************************
' NW7
'****************************************
t_NW7_Char = "0123456789-$:/.+ABCD"
t_NW7_Pattern = Array("10101000111000", _
"10101110001000", _
"10100010111000", _
"11100010101000", _
"10111010001000", _
"11101010001000", _
"10001010111000", _
"10001011101000", _
"10001110101000", _
"11101000101000", _
"10100011101000", _
"10111000101000", _
"11101011101110", _
"11101110101110", _
"11101110111010", _
"10111011101110", _
"10111000100010", _
"10001000101110", _
"10100010001110", _
"10100011100010")
これがバーコードクラスで利用する変換データです。何の事やらさっぱり分からないと思いますので説明します。
t_NW7_PatternはVariant型で、Array関数をして配列を作成しています。この配列の要素番号と、 t_NW7_Char内のキャラクタの位置が対応しています。
すなわち、キャラクタ1 = 10101110001000 になります。この0と1は何を示しているかは、以下の対応表を見てください。
| キャラクタ |
バーコードキャラクタ |
| 0 |
|
| 1 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 |
|
| 7 |
|
| 8 |
|
| 9 |
|
| - |
|
| $ |
|
| : |
|
| / |
|
| . |
|
| + |
|
| A |
|
| B |
|
| C |
|
| D |
|
|
この対応表のスペースが0、■が1で表されています。ですからバーコードを表示する場合には、
対応するキャラクタ位置のt_NW7_Patternの0,1を区別して適切なサイズで線を「Print」メソッドなどを利用して出力すればいいわけです。
この対応表は決められた物なのでこのようなデータ配列を作成してしまえばバーコードを表示する事はそんなに難しいものではありません。
■NW7での注意点(特徴)
NW7でのデータキャラクタ部分を識別する為に、最初と最後にスタートキャラクタ、ストップキャラクタを指定しなければなりません。
利用できるキャラクタは、A,B,C,Dです。クラスではStartChr,StopChrプロパティを設定する事により指定できます。
また、バーコードの信頼性を上げるために、チェックキャラクタ(チェックデジット)を利用する事ができますが、基本的に NW7では必要ありません。
もしチェックキャラクタを使用する場合は、CheckプロパティをTrueにする事によりチェックキャラクタを使用できます。(チェック方法=モジュラス16)
|