Pao@Office

Barcode.phpは、PHP開発者向け、バーコード作成ライブラリ(クラス群)です。

更新履歴

Ver 2.0.0 → 2.1.0 (2017/01/22)

□コンビニ収納用紙(コンビニ用バーコード印字)不具合改修
前回のリリースに置いてEAN128クラスに不具合を入れてしまっており、2017年11月までの一定期間、コンビニバーコードが出力できない状態となっておりました。
本不具合を改修させていただきました。ご迷惑をおかけしました。

□サンプルが正常に動作しない不具合改修
上記不具合、改修時期に途中の段階のプログラムを弊社サンプル試用サイトに置いてしまっていたため、一定期間、サンプル試用サイトのバーコーが出力できない状態にございました。
次のサンプル試用サイトのプログラムを正常なものに入れ替え動作するようにいたしました。
https://www.pao.ac/~~barcode.php/sample/index.php
ご迷惑をおかけいたしました。申し訳ございません。

□PHP7/PHP8 対応
これまでのBarcode.phpは、PHP7で削除された「ereg()」などを使用しており、PHP7環境では出力できないバーコードがございました。
正規表現によるマッチングは「preg_match()」に変更するなどして、PHP7/PHP8で動作するよう対応しました。

Ver 1.5.0 → Ver 2.0.0 (2016/4/12)

□GS1データバー (GS1-RSS) 対応
医療用のバーコードとしてGS1-128と共に多く利用されているGS1 Databar (GS1-RSS)に対応しました。
TPP締結に伴い、商品コードもJANやUPC等多国間で各々であったバーコードが、このDatabarに統一されるものと思われます。
次のバーコードに対応しました。
  • Omni-directional - 標準型
  • Stacked - 二層型
  • Stacked Omni-directiona - 標準二層型
  • Limited - 限定型
  • Expanded - 拡張型
  • Stacked Expanded - 拡張多層型

□CODE128のコードセット(A,B,C)を指定可能に
これまでCODE128は、コードセット(A,B,C)を自動的にバーコードの幅が最小になるよう調整して出力しておりました。
今回の改善により、CODE-A/CODE-B/CODE-C をお客様が指定してバーコードを出力することが可能になりました。
これもまでの自動最小幅出力(AUTO)も既定値としてその機能をお使いいただけます。

Ver 1.4.0 → 1.5.0 (2016/01/27)

【DataMatrix (GS1-DataMatrix) 対応】
日本では二次元バーコードといえばQRコードを思い浮かべることが多いと思いますが、海外で多く利用されている、DataMatrixに対応しました。
デフォルトではシンボルデータサイズを自動決定し出力しますが、お客様がシンボルデータサイズを指定することも可能です。
GS1-128と同様、国際的流通標準化機関のGS1に対応した、GS1-DataMatrixの出力も可能です。FNC1(アプリケーション識別子)を挿入できます。

【PDF417 対応】
日本では二次元バーコードといえばQRコードを思い浮かべることが多いと思いますが、過去より主流であった二次元バーコード、PDF417に対応しました。
デフォルトではエラー訂正レベルや・データ行数・列数を自動計算して、バーコードのサイズを決定します。お客様が各種プロパティにて指定することも可能です。

【二次元バーコードの文字エンコーディング指定を可能に】
これまでQRコードは、シフトJISエンコーディングでの出力のみでした。
実際にはUTF-8でのエンコーディングを求める声も多く、今回QRコードに加え、PDF417、DataMatrixといった二次元バーコード全般に対し、
StringEncodingプロパティを追加して、文字のエンコーディングを指定できるようにいたしました。
例:"utf-8" / "shift-jis" / "932" / "ascii" / "euc-jp" / etc...
既定値は、QRコードは"shift-jis"、その他は"utf-8"です。

【CODE93 対応】
CODE39 に比べ狭い幅に多くのキャラクタを収納できる CODE93 に対応いたしました。

Ver 1.3.0 → 1.4.0 (2014/10/21)

【UPC-A / UPC-Eバーコード対応】
バーコードの桁数を1ケタ少なく指定していただければ、チェックディジットを自動計算いたします。
・UPC-A ・・・11~12桁の数値を指定してください
- 11桁: チェックディジットを自動計算し、コード末尾に付与します。
- 12桁: コード末尾に対してチェックディジットの正誤チェックを行います。
・UPC-E ・・・6~8桁の数値を指定してください
- 6桁: コード先頭に0を付与、コード末尾に自動計算したチェックディジットを付与します。
- 7桁: コード末尾に自動計算したチェックディジットを付与します。
- 8桁: コード末尾に対してチェックディジットの正誤チェックを行います。

Ver 1.2.1 → 1.3.0 変更点 (2014/03/12)

【GS1-128 各種(各産業)バーコード対応】
GS1-128 は、旧UCC/EAN128という位置付けです。
今回、EAN128クラスにオーバーロードしたGS1_128クラスを新設しました。
下位互換のため EAN128クラスは残してあります。中身は同じです。
GS1-128(UCC/EAN128)において、AI(アプリケーション識別子)挿入時、
「FNC1を挿入する・しない」の両方を可能に致しました。
この機能追加により、これまでの
コンビニバーコード(標準料金代理収納用バーコード) に加え
- 医療用医薬品のGS1-128
- 医療機器のGS1-128
- 食肉標準物流バーコード「基本バーコード」のGS1-128
等、各種(全)GS1-128バーコードに正式に対応いたしました。
具体的には、以下のように入力コードを指定していただきます。
(1) 可変長項目(データブロック)の後のAIには、FNC1を挿入
  ⇒ これまで通り"{FNC1}"を付ける。例:"{FNC1}21" のようにコードを指定
(2) 固定長項目(データブロック)の後のAIには、固定長のため目印のFNC1は不要
  ⇒ 新しく追加した"{AI}"を付ける。例:"{AI}21" のようにコードを指定
"{AI}"を指定してFNC1を挿入しない場合も、カッコ()付コード文字は出力されます。
例えば入力コードに"{AI}21"を指定した場合、添え字には(21)と出力されます。
{FNC1}0104512345670016{AI}211
  ↓
(01)04512345670016(21)1 …(01)の前にはFNC1が挿入され(21)の前には挿入されない。
※以前のバージョンでもGS1-128各種バーコードの出力自体は可能でございました。
 ただし、お客様アプリケーション側でFNC1の挿入制御及び、
 添え字の描画を行っていただく必要がございました。
 今回の機能追加で、"{FNC1}"/"{AI}" の切替指定のみで
 自在に各種GS1-128バーコードを出力することができるようになりました。

Ver 1.2.0 -> Ver 1.2.1 (2013/03/07)

- 黒バーの太さを微調整可能に
コンビニバーコードをPDFから印刷した場合等、黒バーがプリンタによって太すぎて、読み取りできないケースが多くございました。
今回、QRコードを除く全バーコードに黒バーをドット単位で調整できる「KuraBarChousei」プロパティを実装しました。
使い方は、サンプルプログラム内にもコメントがある通り、以下のように設定してください。
// ↓↓↓黒バーを1ドット細くします。↓↓↓
// ただし、全体のバーコードのサイズを大きくしないと1ドット細くすると細くなりすぎてしまいます。
$barcode->KuroBarCousei = -1;
// そこで、バーコードの横幅を4倍にします。
// 具体的には、バーコードを描画する最小ドット幅を1ドットから4ドットへ変更します。
$barcode->minWidthDot = 4;
// できあがったバーコードの画像ファイルが大きくても、その後、指定サイズでPDFにその画像を読み込むため問題ありません。

// ↑↑↑黒バーを1ドット細くします。↑↑↑

Ver 1.1.2 -> Ver 1.2.0 (2012/12/12)

- 黒バーを塗りつぶすように変更
これまで、複数の細線で太い線(黒バー)を構成しておりました。
今回、太い線(黒バー)は塗りつぶすように変更しました。
これにより、精度が格段にアップし、描画速度も速くなりました。
サンプルプログラム:BarApp / 他
- UCC/EAN128 不具合改修
特定のパターンで、読み取りできない不具合がございました。
具体的には、{FNC1}で始まる場合、必ずCodeBとしてスタートしてしまっていた不具合です。
不具合を改修いたしました。コンビニバーコード(GS1-128)に影響はございません。
- ITF・郵便カスタマ 不具合改修
特定のパターンで、読み取りできない不具合がございました。
不具合を改修いたしました。
- 背景色の不具合改修
いくつかのバーコードの背景色が白ではなく少し黄色がかっていた不具合を改修しました。
NW7・UCC/EAN128・NEC 2 of 5・Matrix 2 of 5

Ver 1.1.1 -> Ver 1.1.2 (2012/06/25)

- CODE128 / EAN128バーコード不具合改修
CODE128 / EAN128 において以下のようないくつかの不具合がございました。
-- コードセットBで始まるところコードセットCで始まっている。
-- 途中のコードセットB・コードセットCのコードチェンジに不具合がある。
今回バージョンアップでこれらの不具合を改修いたしました。

Ver 1.1.0 -> Ver 1.1.1 (2012/02/20)

- ITFバーコード不具合改修
ITFの桁数が奇数の時、コードの最後に余計な数値が付与される不具合がございました。
ITFの桁数が奇数の時、桁数を偶数にするためにコードの先頭に"0"を付与するよう改修しました。
ITFの桁数が偶数の場合の処理は、これまで通り変わりありません。

Ver 1.0.0 -> Ver 1.1.0 (2011/08/29)

- PDFバーコード精度アップ
バーコードをPDFに出力する際、プリンタにより、黒バーが薄かったり、黒バーの間に白い細いラインが入ることがございました。

今回のバージョンアップで、新たに「$BarThick」プロパティを追加しました。
既定値は1です。ドット単位で黒バーの厚みを調整する(増す)ことが出来ます。
引数:$minWidthDot 及び、PDFに読み込むバーコード画像データの大きさと併用してお使いください。
例(インクジェットプリンタPX-502Aで検証):$minWidthDot = 3 / $BarThick = 3

Ver 1.0 新規リリース (2011/03/30)

- PHPでバーコードを作成するPHPのライブラリ(群)です
既存のものに比べて、PDFでの利用のしやすさなど、使う側に立った配慮のある製品と自負させていただいております。
バーコードをブラウザに出力するサンプルと、PDFに出力するサンプルをご用意させていただきました。 是非お試しください。
↓サンプルページ↓
https://www.pao.ac/~barcode.php/sample/index.php