Java向けバーコード生成ライブラリ
テスト用にバーコードを生成することになったのでJavaのライブラリを調べてみました。
あまり種類はなくて、Barcode4J、ZXing、Barbecueの3択になるようです。Barbecueはさすがに古過ぎるのでBarcode4JとZXingの2択ですかね。
ざっと見てみた限りではシンプルにバーコード出力するだけだったらどれも大差ありません。規格面でも、UPC, EAN, Code 39, ITF, NW-7(Codabar) あたりのメジャーどころはどのライブラリも概ね対応してます。
なので、対応している(マイナーな)規格、細かいオプションの使い勝手、依存ライブラリあたりが選定ポイントですかね。
バーコードは規格モノでころころ変わらないからか、ライブラリがある程度成熟すると開発が止まるようです。現在アクティブに開発されているものはありません。なので将来性は選定ポイントになりにくいかと。ZXingだけはメンテナンス的な修正はされているので、Javaのバージョンアップ追従とかが気になるならZXingがよさそう。
Barcode4J
- Barcode4J
- Apache License, version 2.0
- 2010年で開発が止まっている
- 主な出力フォーマット:SVG、EPS、PNG、JPEG
- バーコードにテキスト(数字)をくっつけてくれる機能がある
- QRコード生成時は ZXing が必要
- Code93に対応していない
ZXing
- GitHub - zxing/zxing: ZXing (“Zebra Crossing”) barcode scanning library for Java, Android
- Apache License, version 2.0 ‐ “Zebra Crossing” と読むらしい
- どちらかというとバーコード読み込みライブラリとして有名だが生成機能もある
- 最近までプロジェクトは
Project in Maintenance Mode Only
なので新機能追加はなさそう(バグフィックスや軽微な改善はありうる) - Java以外のいくつかの言語向けにもportされている
- 生成結果は BufferedImage で受け取って、後はJava側でいい感じにする?
- バーコードにテキスト(数字)をくっつけてくれる機能がないっぽい
- SVGで保存したい場合は jfreesvgと組み合わせるのが定石っぽい(ただしGPL or 有償ライセンスなので要注意)
Barbecue
- Barbecue project
- BSD-style license
- 2007年で開発が止まっている
- 主な出力フォーマット:SVG、EPS、PNG、JPEG
選定結果
今回はBarcode4Jで、と思ってコード書いてる途中でCode93に対応していないことに気付き、ZXingに乗り換えました。バーコードにテキスト(数字)をつける機能がないのがちょっと痛い。
ちなみに、数個だけ生成する場合はオンラインの生成サービスがいろいろあるのでそっち使ったほうが早いです……
関連(するかもしれない)記事
おススメ