ホームに戻る
 JANコード覚え書き

バーコードをJANで作る方法について。
一応、実際に正常に読み取りできるとこまでできたので、
いままで調べたことはたぶん正しいので覚え書きしておきます。

JANコードは主に商品を区別するために用いられる。
0-9 の数字を表現できる。文字は表現できない。
桁数は13桁だが自分で自由に決めることができるのは最初の12文字。
最後の13文字目はチェックデジット(誤り発見用)です。

13文字目の算出のやり方。
モジュラス10のウェイト3 という方法を使います。

まず上から奇数番目の数字を足します。
次に上から偶数番目の数字を足して3をかけます。
上の2つの計算結果を足します。
この結果の下1桁を10から引きます。
この計算結果の下1桁が13文字目となります。

例えば「012345678901」の場合。

(0+2+4+6+8+0)+(1+3+5+7+9+1)*3=98
10-8=2

よって解は「0123456789012」となります。

では、この数字でバーコードを作ってみます。
まず上から1文字目の数字で下の表を使って、
奇数(O)のパリティか偶数(E)のパリティかを調べます。

0 OOOOOO
1 OOEOEE
2 OOEEOE
3 OOEEEO
4 OEOOEE
5 OEEOOE
6 OEEEOO
7 OEOEOE
8 OEOEEO
9 OEEOEO

例では 0 なので全て奇数の OOOOOO になります。
よって、2文字目から7文字目は奇数パリティとなります。
8文字目から13文字目まではどんな場合も偶数と決まっています。
よって、全体では OOOOOOEEEEEE のパリティを用います。

このパリティを参考に数字をバーとスペースに置き換えます。
下の表は 1 がバーで 0 がスペースを意味します。

2-7文字目の奇数、2-7文字目の偶数、8-13文字目の偶数

0 0001101 0100111 1110010
1 0011001 0110011 1100110
2 0010011 0011011 1101100
3 0111101 0100001 1000010
4 0100011 0011101 1011100
5 0110001 0111001 1001110
6 0101111 0000101 1010000
7 0111011 0010001 1000100
8 0110111 0001001 1001000
9 0001011 0010111 1110100

2文字目の数字は 1 でパリティは奇数なので表より、

0001101

となります。
(000 は3つぶんの空白、11 は2つぶんの太さのバー)

2-7文字目まではすべて奇数パリティなので続けると、

「123456」は、

000110100100110111101010001101100010101111

となります。

8-13文字目までは表の8-13文字目の偶数パリティより、

「789012」は、

100010010010001110100111001011001101101100

となります。

7文字目と8文字目の間にはセンターバーが入ります。

センターバーは、

01010

で表されます。

最後に左右にガードバーをつけます。

ガードバーは、

101

で表されます。

よって、結果が横に長くなってしまいましたが、

10100011010010011011110101000110110001010111101010100010010010001110100111001011001101101100101

以上を 1 をバー、0 をスペースで描画すればOKです。

実際はJANコード用のフォントがあるので、
そちらのフォントを用いて作成することができます。。
バーを自前で描いても読み取れると思います。

inserted by FC2 system