CODE 39

 CODE 39は、1975年インターメック社によって開発されたバーコードです。 1982年に米国国防省に認められ、現在工業用としては最も普及している。

1.バーとスペースの基礎知識

 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日追記)

2.CODE 39の構成

   
   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



















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


















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
010010100010010100

 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」に該当する文字は「」で、これがチェックデジットとなります。

 当ホームページで作成されるCODE39の文字コード表をバーとスペースで表すと下記の通りとなります。 また、当ホームページでは、文字印字としてスタートコードとストップコード及びチェックデジットは印字しない方式になっています。
SVG形式で作成されるバーコードは、スタートコードとストップコード及びチェックデジットを印字します。(2015年8月27日追記)


sp



スタート
コード
ストップ
コード
キャラクタ
ギャップ
or
(2005年5月10日アップで、ワイドスペースも選択可能です。)

 左右のマージンを除いた左端から右端までのサイズは、ナロー幅が0.26mmでワイド比率が2.5倍で10文字の場合、 44.98mmとなります。