ZXing で二次元バーコードを作成した際の覚書

スタンドアローンで動作する二次元バーコード作成ソフトを探したところ、文字コードや余白やマスク処理について指定できそうな適当なものが見つかりませんでした。

探し続ければ良いものがあるのかもしれません。

しかし限られた時間中に見つけられる保証もなかったので Java で作成してしまうことに決めました。

なぜ Java なのかは — 単純に Android で用いられることから、最新の状態で整備されているバーコード作成ライブラリが簡単に見つかるような気がしたからです。




検索してみたところ、実際に ZXing Project というプロジェクトが見つかります。

今回はこのプロジェクトを こちら から zip 形式でダウンロードした後、Apache Maven を使用してビルドして使用します。

私の場合はエラーを出力してビルドに失敗してしまいました。

このようなエラーメッセージが現れた場合、Maven のバージョンが合致していない事が示されていますので、該当のバージョンをインストールしてやると大体はうまくいきます。

うまくビルドに成功した場合、 core ディレクトリ直下に tagert ディレクトリが作成されます。

使用したいのはその中にある core-3.3.1-SNAPSHOT.jar というファイルです。

パスで示すと次のような具合になります。

この jar ファイルにパスを通して com.google.zxing パッケージとそれに属する必要なクラスを参照すると、二次元バーコードを簡単に作成できるようになります。

入出力の必要に応じて java.awt 等の他パッケージのクラスもインポートしてください。

インポートができたら QRCodeWriter の encode メソッドを使用して BitMatrix を生成します。

この際に予め Map < EncodeHintType, Object > hintMap を作成しておくと引数として文字コードや余白を指定できます。

上で作成した BitMatrix を使ってグラフィカルイメージを作成します。

あとは他の画像編集などと同様に、Graphics / Graphics2D クラスなど使用して作成した image を編集したり、出力したりしてください。

これに例えばテキストファイルの読み込みを組み合わせれば、エラーの原因ともなる煩わしいコピー&ペーストから解放されるので、とても便利に使えます。

私はこの分野にあまり詳しくなかったのですが、コードを読み込んでいくうちにバージョン、マスク、誤り訂正など基本的な機能を勉強することもでき、なるほどと思わず関心してしまいました。

Leave a Reply

Your email address will not be published. Required fields are marked *