ホームに戻る
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コード用のフォントがあるので、
そちらのフォントを用いて作成することができます。。
バーを自前で描いても読み取れると思います。