JANコードをバーコードに描画
知る人ぞ知るだけど、日本ではすべての商品にこのJANコードが振られている。
こんな感じに印刷されている。これはあくまで器械読みができるようにしたものなので、実際はこの4569951116179
もしくは49968712
という13桁/8桁の数字がすべての商品のユニック識別子になっている。
という訳で、このコードをDBに保存してるのが、いつの間にか印刷が必要になってくるよね?どうすればいいの?
印刷ソリューション1:画像
コードを入力して、画像に変換するWebPageやツールは結構ありましたが、画像になると、Pixelになるので、拡大などには非常に苦手なので、おすすめできない。
ソリューション2:フォント
商業利用のソフトの中に、JANコードを印刷できるものがある。ただ、ほとんどが有料なソフトパケージになってる。しかも高い、うん百万円取られるケースもある!
この場合、GPLライセンスのフォントとコードがある。そのコードを使えば、JANコードを綺麗に変換ができる。
13桁のJANバーコード:
8桁のJANバーコード:
13桁JANコード⇒フォント文字変換のロジック
すべてのクレジットははフランス人のgrandzebuのEAN13ページに行く。
JANコードは数字、バーコードに表現するには数字だけだと足りたい。下記の変換ルールが適用される。
- 1桁目の数字はそのまま流用(TableDコラムの文字を参照)
- 次の6桁の数字はTable1のTable AもしくはTable Bに当てはめる英数字に変換
- 変換ルールDigit2~7まではTable2にある
*
を入れる- 最後の6桁の数字はTable1のTable Cに当てはめる文字に変換
+
を入れる
Table1
Table2
上記のルールを適用したら、4569951116179
というコードは4FQJJPL*bbgbhj+
。フォントを適用したら:
8桁JANコード⇒フォント文字変換のロジック
:
を先頭に入れる- 先頭の4桁の数字をTable1のTableAの文字に適用
*
を入れる- 末尾の4桁の数字をTable1のTableCの文字に適用
+
を入れる
49968712
が変換して、:EJJG*ihbc+
になる。フォントを適用したら: