CustomerBarcode
日本郵便の郵便物って、たまに企業から来るもの等に黒いBarcodeが印刷されていますよね。
あれはCustomerBarcodeといって実は印刷すると大量発送だと5%引きだったりするんです。
何のためのものかというと、機械があれを読み取って郵便番号などで整理するためなのですわ。
実は目に見えなくても郵便物すべてに透明のInkで印刷されています。
さて年賀状の季節も近づいてきたのでその構造を少し調べてみました。
Barcode23桁から構成されていて、それぞれの桁に相当するBarcodeが決まっていて、それを並べているだけです。
初めに、Barcodeには2種類あり、数字記号を表わすものとAlphabetを表すものがあります。
基本は数字記号なので今回はAlphabetについては割愛。
数字記号を表すBarcodeは全部で21種類あります。
数字0-9、-(hyphen)、CC1-8、Start、Stopです。
Barcodeは次の郵便局より引用した表のように対応しています。
具体的な構造は、
- 01桁目、StartCode
- 02-08桁目、郵便番号
- 09-21桁目、住所表示番号
- 22桁目、CheckDigit
- 23桁目、StopCode
この5つの項目から成り立っています。
01桁目と23桁目のStart,StopCodeはBarcodeの始まりと終わりを示すものです。表のStart、StopというBarcodeを印刷します。
02-08桁目の郵便番号は7桁の郵便番号をhyphen取り除いた形で表の番号に対応する形のBarcodeを印刷します。
09-21桁目は住所表示番号というのを印刷するのですが、
まあここは簡易版なので省略しても大丈夫ということで省略しちゃいます。(笑)
省略する場合、13桁全てを表のCC4のBarcodeで埋めます。
22桁目CheckDigitは読み取ったBarcodeに誤りはないかを調べるために印刷するものです。
これが少々厄介で、初めに02-22桁目の郵便番号と住所表示番号をCheck用数字に変換します。
0-9はそのまま、hyphenは10、CC1-8は11-18となります。
そしてこれを全てたします。そしてこれにあといくつ足したら一番早い19の倍数になるかを考えます。
例えば郵便番号123-4567、住所表示番号が13桁全てCC4の場合、たすと210になります。
これに18を足すと228になり、19で割ると商が12で割り切れますね。
つまりこの例だとCheckDigitは18です。なのでCC8のBarcodeを印刷します。
Program等で自動生成する場合の計算式を考えると、 19 – (全てたした値を19で割ったあまり) となりますね。
但しあまりが0の場合はこの式だと19になってしまうので、条件分岐で0にしてやる必要があります。
ということでCustomerBarcodeはこのような構造になっています。
これをSoftwareにしてみたので、まあ使ってみたかったら使ってみてください。
http://software.hokt.net/で配信中です。
参考 : 郵便局HP http://www.post.japanpost.jp/zipcode/zipmanual/p10.html
No comments yet.