Pao@Office

Barcode.jarは、Java環境で動作する、バーコード作成ツール(クラス群)の総称です。

更新履歴

Ver 2.3.0 → Ver 3.0.0 (2016/4/12)

□GS1データバー (GS1-RSS) 対応
医療用のバーコードとしてGS1-128と共に多く利用されているGS1 Databar (RSS)に対応しました。
TPP締結に伴い、商品コードもJANやUPC等多国間で各々であったバーコードが、このGS1データバーに統一されるものと思われます。
対応している GS1データバー(RSS) は、次の通りです。
1.GS1データバーOmni-directional / 表示桁数:数字14桁(GTIN)
Omni-directional(標準型)

高さが狭いカット型という種類もございますが、この標準型の高さを調整して出力してください。
Stacked(2層型)



Stacked Omni-directiona (標準2層型)

 

 

2.GS1データバーLimited / 表示桁数:数字14桁(GTIN)
Limited (限定型)
3.GS1データバー Expanded / 表示桁数:最大数字:74桁または英字41文字
Expanded (拡張一層型)
Stacked Expanded (拡張多層型)
試用版 (クリック)に付属するサンプルにて、ver.3.0で追加したGS1 Databar(RSS) をお試しいただけます。

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

Ver 2.2.0 → 2.3.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といった二次元バーコード全般に対し、
getStringEncoding() / setStringEncoding() を追加して、文字のエンコーディングを指定できるようにいたしました。
例:"utf-8" / "shift-jis" / "932" / "ascii" / "euc-jp" / etc...
既定値は、QRコードは"shift-jis"、その他は"utf-8"です。

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

Ver 2.1.0 → 2.2.0 (2014/10/21)

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

【JDK 1.8対応】
JDK 1.8版に対応いたしました。試用版にも加えさせていただいております。

【サンプルプログラム改善】
試用版に付属するいくつかのサンプルプログラムの機能、操作性をより良くするため、改善いたしました。
お試しいただけない組み合わせパターンがある等、不具合もございましたので改修させていただきました。

Ver 2.0.0 → 2.1.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.4.0 → Ver 2.0.0 変更点 (2013/04/23)

(1) バーコードの画像ファイルへの保存機能追加
 各バーコードを画像ファイルに出力できるようになりました。
 この機能により、PDFやWEBサイト等、様々な形式のページへバーコード出力が容易にできるようになりました。
バーコードを画像に保存する場合は、コンストラクタの引数に画像ファイル名(String filename)を指定してください。
バーコードの描画は、draw/drawDirect/drawDelicateメソッドをそのままお使いください。
ただし、画像ファイル名(String filename)を引数に持つdraw/drawDirect/drawDelicateメソッドもご用意してございます。
バーコード出力ファイルを随時変更する場合は、こちらのオーバーロードメソッドをご利用ください。
※1 画像ファイルの形式は、filename の拡張子で判断します。
※2 png/gifの背景は透明になります。他の画像形式の背景は白になります。
※3 画像解像度(dpi)の指定は行えません。
※4 描画単位は全てpixelになります。(mm等の単位での画像出力は行えません。)
バーコード画像保存サンプル(BarcodeToImage)を、Barcode.jar試用版 zipファイルに追加しました。
是非、お試しください。

(2) バーコード画像の上下左右余白部分をpixelで指定可能
保存するバーコード画像周囲の余白をpixel単位で指定可能としました。
バーコード両端のクワイエットゾーン等にもお使いいただけます。
※以下のプロパティをご利用ください。
setImgMargin(int pixelMargin)/int getImgMargin()
・黒バーを塗りつぶすように変更
これまで、複数の細線で太い線(黒バー)を構成しておりました。今回、太い線(黒バー)は塗りつぶすように変更しました。
これにより、精度が格段にアップし、描画速度も速くなりました。

(3) 小数値mm単位でバーコード幅の指定が可能
この機能により自在な大きさのバーコードを高い精度で出力できるようになりました。
- 小数値座標描画に対応
これまでは複数の細い線で1つの黒バーを描画していたため、細い線をドットにはめるためその描画座標を整数に丸めていました。
今回、黒バーを塗りつぶすように変更したことにより、
その描画座標も小数値で指定できるようにいたしました。
- 座標単位pixel以外mm等に対応
x, y, width, heightの単位が対象です。これまでの単位はpixelのみでしたが、
今回、mm/inch/point(1/72インチ)に対応しました。
パラメータで座標単位を指定する場合、出力デバイス(プリンタ・PDF等)のdpiも同時に指定する必要がございます。
前述した今回リリース機能、小数値座標描画とあわせてお使いください。
※Barcode.jar試用版に同梱されているサンプルプログラムでは、72dpiのパネルに小数値mm単位でx, y, width, heightを指定し、画面出力・印刷を行っております。サンプルプログラムで使用している「extends JPanel implements Printable」パネルは、画面出力時は72dpiですが、印刷時は、プリンタのDPIで出力します。
そのため、今回追加機能の小数値でバーコードの幅と高さを指定した場合、画面上のバーコードが精度の悪い状態でも、印刷するとプリンタのドットにのった精度の高いバーコードを出力できます。
対象サンプルプログラム:BarApp・・・Barcode.jar試用版 zipファイル(リンク)に含まれています。

(4) コンビニバーコードの幅ぴったり描画対応
これまで、小数値が使用できなかったため、コンビニバーコードは、固定幅での画像出力が実用的な運用方法でした。
今回、小数値に対応いたしましたので、コンビニバーコードを幅指定で出力できるようになりました。
具体的には、drawConvenienceメソッドのwidthに小数でmm(ミリメートル)を指定してください。

Ver 1.3.3 → Ver 1.4.0 変更点 (2012/07/02)

・コンビニエンス料金代理収納用バーコード(GS1-128)不具合改修
 これまでコンビニバーコードの不具合で多くの方にご迷惑をおかけしました。
 これまでの不具合を改修しDrawConvenienceDelicate()メソッドを新たに追加しました。
・バーコード幅取得メソッド追加
 バーコードを画像ファイルに出力するために、
 事前に描画後のバーコードの幅を取得するメソッドをそれぞれのバーコードクラスに追加しました。
・QRコード 幅指定直接描画メソッド追加
 幅を指定して直接描画を行う DrawDirect() メソッドを追加しました。
 全体幅を指定することができ、かつ、精度の良い(ドットにはまる)QRコードを出力することができます。
 指定された幅以内で、指定された出力デバイスのドットのはまる一番大きな幅でQRコードを描画します。
・サンプルプログラムのソースコードを整備
 サンプルプログラムの中で、総合的にバーコードを出力する「BarApp」について前述した
 「コンビニバーコードを出力する機能」「画像ファイルに出力する機能」を追加しました。
 それに伴い、このサンプルプログラムのソースコードを全体的に整備し、わかりやすくいたしました。

Ver 1.3.2 → Ver 1.3.3 変更点 (2012/01/16)

・各JDKのバージョンに対応
 これまで、JDK1.4以上のBarcoe.jarファイルを1つ作成・配布しておりましたが、
 今回のバージョンアップで、
 JDK1.3 / JDK1.4 / JDK1.5 / JDK1.6 / JDK1.7
 それぞれの jarファイルを ダウンロードzipファイルに入れております。
・SVG対応
 ie9 / 最新Chrome 等 ブラウザでの SVG画像フォーマットでのバーコード出力に改めて対応しました。
 ダウンロードzipファイルに入っているサンプルプログラム「QRSvg」でお試しください。
・ビルド時ワーニング除去
 特にソ-スコードをご購入いただいていたお客様向けにアナウンスさせていただきたい事項です。
 Barcode.jar 自体のビルド時にいくつかワーニングがございました。今回これを取り除きました。

Ver 1.3.1 → Ver 1.3.2 変更点 (2011/01/14)

・CODE128不具合改修
 コード中に+/-がありその後数字が続く場合、全体を数値として認識してバーコードを作成していました。
 この不具合を改修いたしました。
・サンプルプログラム不具合対応
 サンプルプログラムが環境により動作しないようになっておりました。
 この不具合に対応いたしました。

Ver 1.3.0 → Ver 1.3.1 変更点 (2011/01/11)

・CODE128 の不具合改修
 前回修正時のミスによりCODE128が描画できなくなっておりました。
 申し訳ございません。
 この不具合を改修いたしました。

Ver 1.2.0 → Ver 1.3.0 変更点 (2010/11/06)

・バーコードの描画速度向上
 バーコードの描画速度を従来比 5 / 8 程度に縮めました。
・CODE128 の不具合改修
 コード内にスペースが存在する場合、 出力するバーコードに不具合が発生するケースがありました。 これを改修しました。

Ver 1.1.3 → Ver 1.2.0 変更点 (2010/09/27)

1次元バーコード
 draw メソッド
  描画速度を 1/8 程度に短縮
 drawdelicate/drawdirect メソッドの描画速度は変更なし
QRコード
 draw メソッド
  描画速度を 1/15 程度に短縮
 drawdelicate メソッドの描画速度は変更なし

Ver 1.1.2 → Ver 1.1.3 変更点 (2010/04/14)

・ダウンロードファイル(試用版)に
 ・サンプルプログラム
 ・PDFドキュメント
 ・ヘルプファイル
 が含まれておりませんでした。
 zip圧縮ファイルに同梱しました。
・CODE128 でアンダーバー(_)を出力できるように改変しました。

Ver 1.1.1 → Ver 1.1.2 変更点 (2009/11/10)

・デグレードで、JDK6.0でしか動作しないようになってしまっていたため、
 JDK1.4以上で動作するように戻しました。

Ver 1.1.0 → Ver 1.1.1 変更点 (2009/04/28)

・完全なデグレードで、バーコードの印刷ができなくなっていました。
 申し訳ございません。不具合を改修いたしました。

Ver 1.0.3 → Ver 1.1.0 変更点 (2009/02/15)

バーコードの精度・描画速度アップ をわかりやすくしました。
・これまで、バーコードは、2つ手法(メソッド)を用意して描画していただいておりました。
 (1) 全体幅を指定して、その幅ピッタリに描画する方法。(drawメソッド)
  →いったん大きなバーコードを描画して、その幅に縮小するため精度が荒く描画速度が遅い
 (2) バーコードを描画する最小ピッチを指定して、その幅で直接、バーコードの線を書く方法。(drawDelicate メソッド)
  →そのピッチで直接バーコードの線を書くため精度・スピードは良いが、
   最終的な幅がわからず、メソッドの使い方自体がわかりにくい。
 (3) そこで、今回、新しい手法(メソッド)を用意いたしました。(drawDirect メソッド)
全体幅を指定して、その幅以内で(画面やプリンタの)ピクセルに合う最大の幅長で描画する。
  →直接描画しているため描画精度・速度ともよく、全体幅を指定するのでわかりやすい。
・一次元バーコードで黒バーのドット単位の幅調整が可能にしました。
 KuroBarChouseiプロパティの設定により、
 描画する黒バー幅をドット単位で微細調整できます。
 既定値は、0 ドットです。
 例えば、このプロパティに-1 を指定すると、バーコード内全ての黒バーの幅が
 1 ドットずつ細くなります。
 解像度(DPI)も指定できるDPIプロパティを設けました。
 合わせて指定してください。
 プリンタにより、微調整が必要な場合にこの機能を使用してください。
 ※この機能は。DrawDirect / DrawDelicate メソッドには有効ですが、
  Draw メソッドには無効ですのでご注意ください。
・コンビニバーコードの追加
 コンビニバーコードの描画を可能に致しました。
 ただし、DPIプロパティで、出力対象のデバイス(プリンタ等)の
 解像度の指定をしていただく必要がございます。
・UCC/EAN128・Code128の不具合改修
 UCC/EAN128・Code128バーコードが読めないケースがございましたので、
 不具合を改修いたしました。

Ver 1.0.2 → Ver 1.0.3 変更点 (2008/02/07)

・郵便カスタマバーコードで・・・
 20桁を超える場合の処理で、
 最後の文字が英字の場合の切捨て処理が誤っていました。
 この不具合を改修いたしました。

Ver 1.0.1 → Ver 1.0.2 変更点 (2007/12/22)

・JAN13 で、「DrawDelicate」メソッドを使用した場合、
 ・センターバーより左側
 ・偶数パリティ
 ・数値が9
 この条件がそろうと、
 「0010111」でバーコードを出力しなければいけないところ。
 「0011111」でバーコードを出力しておりました。
 この不具合を改修いたしました。
 元々「Drow」メソッドには、この不具合はありませんでした。

Ver 1.0.0 → Ver 1.0.1 変更点 (2006/12/05)

・NW7 のスタートコードとストップコードのキャラクタが
 異なる場合も正常なバーコードを出力できるように変更した。