PHPでコンビニ用バーコードGS1-128(UCC/EAN-128)生成(基礎知識編)

バーコードを生成するライブラリはPEAR::Image_Barcodeがあるけど、コンビニ用のバーコード規格には対応していない。

まず基本的なバーコードについてはここを一読する。 JAN(EAN)やcode128などバーコード規格の違いを一通り理解できる。

コンビニ用バーコードの規格はGS1-128(旧名UCC/EAN-128)というらしいけど、この詳細な仕様(規格)は流通システム開発センターにお金を払わないとくれないらしい。ここから。

これぐらい無料で公開してほしい・・・(そんな高くないけど)。

そこにはバーコードの仕様、チェックデジットの計算方法、印刷品質についてなどが記述されているので、もし仕事で必要なら手に入れといたほうがいいかも。 重要なのは

  • 余白も含めたバーコードの横幅は60mm以下(左右の余白は2.54mm×2)
  • 高さは10mm以上
  • バーコードの構成は
    (余白)(スタートコードC)(FNC1)(データ部)(チェックデジット)(ストップコード)(余白)

チェックデジットの計算方法はモジュラス103

GS1-128(旧名UCC/EAN-128)はcode128を拡張した規格なのでcode128とよく似ている(wikipediaのcode128
違いはFNC1(ファンクションキャラクタ)とデータ部の長さと金額などの出力項目の位置が決められていることかな。

FNC1(ファンクションキャラクタ)はバーパターンが「411131」で固定。
キャラクタセットとバーパターンはここを参照。
GS1-128(旧名UCC/EAN-128)はcode128のcode cを参照。

自分が作成したバーコードが正しいかどうかはここにあるようなフリーソフトで出力して確認。