CODE 39は、1975年インターメック社によって開発されたバーコードです。 1982年に米国国防省に認められ、現在工業用としては最も普及している。
CODE 39バーコードは、幅が狭いバーとスペース、そして、幅が広いバーとスペースで構成されています。 幅が狭いバーとスペースを、それぞれナローバー(細バー)/ナロースペース(細スペース)と呼び、 幅が広いバーとスペースを、それぞれワイドバー(太バー)/ワイドスペース(太スペース)と呼びます。 ナローバーとナロースペースは、バイナリーコードの0(zero)を表し、ワイドバーとワイドスペースは、バイナリーコードの1(one)を表します。 1文字は、5つのバーとそれに挟まれた4つのスペース(9つの要素)で構成されています。 9つの要素の内の3つがワイド(太)で残りの6つがナロー(細)となっています。 これが、名前の由来となっています。3 of 9(9つの内の3つ)からCode 39という名前になったのです。
2種類のスペース | 2種類のバー |
ナロー(細)とワイド(太)の比率が2倍〜3倍であれば規格内です。
標準的には、
低密度 : ナロー幅=0.40mm 比率2.5倍
中密度 : ナロー幅=0.26mm 比率2.5倍
高密度 : ナロー幅=0.19mm 比率2.25倍
のようですが、当ホームページでは、比率2倍の幅で作成しています。特に問題なく読み込めています。
SVG形式で作成されるバーコードは、基本寸法の中密度と高密度が選択できるようになっています。(2015年8月27日追記)
要するに、1文字は9ビットで表現されており、0と1をナロー(細)とワイド(太)に置き換えればよいのです。
キャラクターセットは、数字(0-9)、アルファベット(A-Z)、6種類の特殊文字、そして、スペースの43文字分あります。
例として、バイナリーコードで 「000110100 」と定義されている数字の「0」のバーとスペースの組合せは以下のようになります。
また、文字と文字の間には、キャラクタギャップと呼ばれるスペース部分が必要です。当ホームページではナロースペースを使っています。 (2005年5月10日アップで、ワイドスペースも選択可能です。)
SVG形式で作成されるバーコードは、基本寸法のナロースペースをキャラクタギャップとして使っています。(2015年8月27日追記)
0123456789ABC |
バーとスペースの基本構成は以下の通りです。
Left Light Margin | + | Start Code | + | Data Field | + | Check Digit | + | Stop Code | + | Right Light Margin |
---|
Left Light Margin | : | ナロースペースの10倍以上のスペースが必要です。 |
Start Code | : | スタートコード、「010010100」と表現する。 |
Data Field | : | データフィールドは可変長で最大32文字までです。文字コードは下記参照。 |
Check Digit | : | チェックデジットはなくてもよいのですが、付けると誤読率が約50倍改善されます。 |
Stop Code | : | ストップコード、「010010100」と表現する。 |
Right Light Margin | : | ナロースペースの10倍以上のスペースが必要です。 |
番号 | 文字 | 9-bit Code | 番号 | 文字 | 9-bit Code | 番号 | 文字 | 9-bit Code |
---|---|---|---|---|---|---|---|---|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J |
000110100 100100001 001100001 101100000 000110001 100110000 001110000 000100101 100100100 001100100 100001001 001001001 101001000 000011001 100011000 001011000 000001101 100001100 001001100 000011100 |
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
K L M N O P Q R S T U V W X Y Z − . sp $ |
100000011 001000011 101000010 000010011 100010010 001010010 000000111 100000110 001000110 000010110 110000001 011000001 111000000 010010001 110010000 011010000 010000101 110000100 011000100 010101000 |
40 41 42 |
/ + % |
010100010 010001010 000101010 |
スタートコード | ストップコード | ||
---|---|---|---|
文字 | 9-bit Code | 文字 | 9-bit Code |
* | 010010100 | * | 010010100 |
Check Digit
チェックデジットは、モジュラス43方式で下記のように計算して作り出されます。
例)0123456789ABC
上記文字コード表に0から42まで連続番号が付けられていますが、チェックデジットの計算ではこの番号を使用します。
まず、文字を番号に置き換えて、すべてたします。
0+1+2+3+4+5+6+7+8+9+10+11+12=78
この値を43で割った余りがチェックデジットとなります。
78/43=1余り35
「番号35」に該当する文字は「Z」で、これがチェックデジットとなります。
当ホームページで作成されるCODE39の文字コード表をバーとスペースで表すと下記の通りとなります。
また、当ホームページでは、文字印字としてスタートコードとストップコード及びチェックデジットは印字しない方式になっています。
SVG形式で作成されるバーコードは、スタートコードとストップコード及びチェックデジットを印字します。(2015年8月27日追記)
文 字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | − | . | sp | $ | |
/ | + | % | ||||||||||||||||||
特 殊 文 字 | スタート コード | ストップ コード |
---|---|---|
* | * | |
キャラクタ ギャップ |
---|
or |
左右のマージンを除いた左端から右端までのサイズは、ナロー幅が0.26mmでワイド比率が2.5倍で10文字の場合、 44.98mmとなります。