LoginSignup
1
0

More than 1 year has passed since last update.

郵便のカスタマバーコードをSVGで出力

Last updated at Posted at 2022-02-21

はじめに

2790031_1-1.png
カスタマバーコード、という、郵便番号と住所を機械で認識しやすくするためのバーコードが存在することを知った。
郵便局のWEBページ→バーコードマニュアル

郵便局のWEBページに、一応カスタマバーコードを作成するページも存在するのだけど……
バラバラの画像の組み合わせになってて、1枚の画像としては簡単に保存できないのである。どうやって使うことを想定しているのだ…?

仕様を読んだら難しくなかったので、SVGで出力するプログラムを作ってみようと思った。
SVGなら拡大してもきれいだし。

まぁ、カスタマバーコードを自分で使う予定はないんだけど。

なので、作ったプログラムを紹介する記事を書いているわけ。

カスタマバーコードって?

はがきとか、封筒とかについてる、↓こんなバーコードのこと。
5540031_2-1-33.png
これは、企業が出すDMのような、大量に送られる郵便物についてることが多い。これには郵便番号と住所が含まれていて、これを付けて出すと郵便料金が割引される。(大量に出さないと割引されないので、個人でバーコードを付ける意味はないよ。というか、個人で勝手にバーコード付けて出してもいいのかな?)

ときどきTwitterとかに住所塗りつぶした手紙の写真載せてる人いるけど、このバーコードも塗りつぶしておかないと住所バレバレ…というのはちょっと前に話題になったやつ。

作ったもの

コマンドラインで、

CustomerBarcodeGenerator.exe <ハイフン無しの郵便番号> <住所表示番号>

のように実行すると、カレントディレクトリに<ハイフン無しの郵便番号>_<住所表示番号>.svgというファイルが生成される。

レゴランドの場合だと、

CustomerBarcodeGenerator.exe 4558605 2-2-1

となって、
4558605_2-2-1.svg
4558605_2-2-1.png
が生成される。

住所表示番号は、○丁目とか番地とか、マンションだと棟や部屋の番号をハイフンでつなげたもの。□□町3丁目1番地△△マンションB棟123号室とかだと、3-1B123となる。
詳しくは郵便局のWEBページを見てください。

プログラム自体は、ほぼ、この文字をバーの列に変換する部分がすべてですね。

英字と住所表示番号部の13文字目について

カスタマバーコードで表すことのできる文字数は、固定(郵便番号部7文字、住所表示番号部13文字)である。そのため、住所表示番号が13文字に満たない場合は、制御コード『CC4』で残りを埋める。逆に、超えてしまった場合は、13文字までをコード化して、それ以降は省略する。

また、カスタマバーコードで英字を表す場合は、制御文字と数字の2文字を使ってアルファベットを表す。

ということは、住所表示番号によっては、以下のようにアルファベットの途中で切れることになる。
(Cを表すには、制御コード『CC1』と数字『2』の2文字を使う必要があるが、13文字を超えるため、『2』を入れることができない。)
2019120500040817.png

で、この場合13文字目はどうするのか?

以下のページには、コードの片割れを入れろと書いてある。(上記の図のように、『CC1』を入れる。)

しかし、郵便局WEBのバーコード作成するページでは、はみ出す場合は13文字目は空白のコード『CC4』が入る。
どっちやねん

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0