前にBarcode4Jでの例をやっていたんですが、違うパターンってことでw
こっちの方だと画像のイメージはBufferedImageで作ってくれるので、汎用的でそのあと加工がしやすいですね。
ZXingの入手
まずは、バーコードのライブラリ「ZXing」を入手しましょう。
ZxingはGoogleが開発・公開しているライブラリですので、安心してくださいw
で、入手方法は次の2つ。どちらかお好みで。
GitHubからソースを直接入手
ここから入手します。
https://github.com/zxing/zxing
とりあえず必要なのはこれです。
- zxing/core
- zxing/javase
※JavaSEのとき。完全にコンパイルするならこれも必要ですが、このサンプル程度ならエラーは無視しても大丈夫ですw
Apache Mavenから入手
Mavenでも大丈夫です。
pom.xmlは、こんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 | <!-- https://mvnrepository.com/artifact/com.google.zxing/core --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.5.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.google.zxing/javase --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.5.1</version> </dependency> |
※こちらもJavaSEのとき。
Mavenが嫌なら、コメントのURLからjarだけダウンロードもアリですw
ZXingを使って、JAN13(EAN13)のバーコード画像を出力するサンプル
Jan13インストアコード「2101234567890」のバーコード画像を出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.oned.EAN13Writer; public class JanTest { public static void main(String[] args) { try { //JAN13(EAN13)コードの画像イメージを作成 EAN13Writer writer = new EAN13Writer(); BitMatrix bitMatrix = writer.encode("2101234567890", BarcodeFormat.EAN_13, 200, 125); BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix); //画像ファイルを出力 ImageIO.write(image, "png", new File("C:\\hoge\\barcode.png")); } catch (IOException e) { e.printStackTrace(); } } } |
実行結果
こんなバーコード画像が出力されます。
サンプルの解説
ZXing関連のクラスで、BufferedImageを作成しています。あとはファイル出力するだけですね。
今回の例はJAN13のバーコード出力でしたが、もちろんUPC,ITF,Code128のようなバーコードも出力できます。
コードの種類ごとに、〇〇Writerが用意されていますので、それを使いましょう。