JANコードで覚えたこととかメモとか記録とか

_〆(゚▽゚*) JANコードのバーコードについて

JANコードのバーは、0~9が3種類と、スタートセンターエンドの3種類の合計33個のバーがあります。
3種類のバーがあるためにキーボードの『0~9』と『A~J』『L~U』の大文字英数字に割り当てました。
決まった法則によって3種類のバーを使うため、うちのバーコードのフォントはそのままJANの数字を入力してもスキャンできるバーコードにはなりません。
よって、エクセルの数式(=jan(490...))やjavascript版等を利用してバーコード用の文字列が必要になります。

JANコードを利用した雑誌コードというものがあるらしい

2019年7月27日 18:50:18
マガジンコードの内訳
内訳はざっとこんなもんだ
  1. 定期刊行物コードのフラグ
  2. 予備コード(当面0のようです)
  3. 雑誌コード5桁
  4. 号数 12月号等 発行月等
  5. 年号 西暦の下1桁
  6. チェックデジット
  7. アドオンコードの予備コード(当面0)
  8. 本体価格 600円→0600 1万円以上は0000となる
1~5は普通に数字を当てはめていって、6のチェックデジットでおしまい。
問題はその次の7と8で構成されている、雑誌コードの「アドオンコード」と呼ばれるものがあるそうです。
お問い合わせをいただいたときに、見たことないやーと思ったけど、ありました。
なぜか手元にあった月刊現代農業
月刊現代農業の雑誌コード
なぜか手元にあった月刊現代農業2019年5月号

「491」からはじまって「雑誌コード03475」があって「号数05」、「9」の年号が見えますね
そして値段は「762円」なので、予備コードと4桁の0埋めなので「00762」

これだ!
そういえば見たことあるかも!

「雑誌コード管理センター」のHPを見ると、どうやらJANコードと同じ01の作りっぽい。
JANコードはセンターコードから左側は2種類を使用しています。
この2種類と同じバーを使っているみたいです。
チェックデジットの計算方法のページに書かれていたのでこのまま式にして文字列に変換してみました。
まず予備コードと値段を0埋め
この数字からチェックデジットを出す。
チェックデジットから0~9orA~Jなのかのパターンを取り出す
パターンに0埋めの数字を当てはめて文字列にしていく。
これで完成。
JANコードは頭が隠れているのと同様にチェックデジットが隠されている感じでしょうか

ところがどっこい、「全然違うバーコードみたいです」という返答を頂きました。

確かに、1発目からして「0」もしくは「A」のバーですらない。

そこでグーグル先生に聞いたところ、 「独自のスタートキャラクタ」と「デリネータと呼ばれる数字と数字の間に01をはさむ分離キャラクタ」があるというのを教えてもらいました。

雑誌の本体価格が682円である場合
パターン:00011
682円の雑誌コード(アドオンコード
こんな感じ
現在のフォントには雑誌コード用のスタートコード、デリネータはありませんので新しく作成しました。
(※JANCODE-nicBARのみ)
スタートコードは小文字のk(ケイ)
デリネータは小文字のl(エル)
に割り当てました。
よって、「682円」である場合の文字列は、「k0l0l6lIlC」となります。

※注 何も表示されません
アクセス時 window.onload() =function () で alert() サンプルの値が実行され表示されます。
jancode_magazinecode.html
jancode_magazinecode.js

チェックデジットからのアドオンシンボルパターン
チェックデジット(左から)
1桁
2桁3桁4桁5桁
0 g g k k k
1 g k g k k
2 g k k g k
3 g k k k g
4 k g g k k
5 k k g g k
6 k k k g g
7 k g k g k
8 k g k k g
9 k k g k g
※k、gの意味はコチラ
k、gの各種文字列
数字
0 0 A
1 1 B
2 2 C
3 3 D
4 4 E
5 5 F
6 6 G
7 7 H
8 8 I
9 9 J
新規に文字列追加(JANCODE-nicBARのみ)
スタートキャラクタ k
デリネータ l