Agiler QRCode Generator
GeneXusアプリケーションから簡単にQRコード画像を生成するための オープンソースライブラリです。
JavaライブラリとGeneXus外部オブジェクトを組み合わせることで、 既存のGeneXusアプリケーションにQRコード画像の生成機能を追加できます。
GeneXusアプリケーションからQRコードを生成した実行例。
ライブラリ概要
AgilerQrcodeGenerator は、GeneXusアプリケーションから QRコード画像を生成するためのライブラリです。
- JavaライブラリとしてQRコード生成機能を実装
- GeneXus External Object から呼び出し可能
- QRコードをPNG画像として生成
- 既存アプリケーションに簡単に組み込み可能
- 実行プラットホームに応じた出力パスに対応
アーキテクチャ
本ライブラリは次の2つの要素で構成されています。
Javaライブラリ (AgilerQrcodeGenerator-0.1.0-all.jar)
QRコード生成処理を実装したJavaライブラリです。
- ZXingライブラリを利用
- QRコード画像生成
- jar形式で配布
GeneXusオブジェクト (AgilerQrcodeGenerator-0.1.0.xpz)
GeneXusからJavaライブラリを呼び出すためのExternal Objectです。
- External Object,戻り値用SDT
- Javaライブラリを呼び出し
- GeneXusアプリから利用可能
KB構成上のポイント、実行の流れ
GeneXusからExternal Objectを呼び出してQRコードを生成してください。
GeneXus ProcedureからQRコード生成ライブラリを呼び出す例。下はコピペ用。
&Json=&EO_QrcodeLibrary.generateQrcodePNG(
"/tmp/testqr.png",
"C:\\temp\\testqr.png",
"https://example123.com"
)
&SDT_QucodeLibrary.FromJson(&Json)
Msg("isSuccess:"+&SDT_QucodeLibrary.isSuccess.ToString(),status)
Msg("isWindows:"+&SDT_QucodeLibrary.isWindows.ToString(),status)
Msg("errorMessage:"+&SDT_QucodeLibrary.errorMessage,status)
上記における処理の詳細フロー
- GeneXus Procedure から出力パスを引数にして、External ObjectのQRコード生成メソッドを呼び出す
- External Object よりJavaライブラリを呼び出す
- ライブラリにて実行プラットホームを自動判定。linuxの場合、linux用の出力パス引数を採用。
- ZXingライブラリがQRコードをPNG画像として出力パスに保存
- GeneXus Procedureに、戻り値が戻るので、SDTで受け取る。
- SDTに格納された成功フラグ、エラーメッセージを評価する
ライセンス
AgilerQrcodeGenerator の JavaソースコードはGitHubにて、MITライセンスのオープンソースとして公開しています。
利用条件はリポジトリ内のライセンスファイルをご確認ください。
本ライブラリは QRコード生成のために
Google ZXing ライブラリを利用しています。
ZXing は Apache License 2.0 のもとで公開されています。
検証環境
- GeneXus 18 U8
- Java 1.8+
- Tomcat 8.5
- Windows11 / Linux (RHEL9.6)
Tomcat8.5は、2026年3月時点ですでにサポートエンドしています。10もしくは9の利用を推奨します。
ダウンロード
GeneXus用オブジェクトとJarは GeneXus Marketplace から配布予定です。
JarのJavaソースコードは GitHub にて公開しています。
インストール方法
1. KB構成
まず、KBのプロパティで、Javaのバージョンなどを確認してください。この例は1.8ですが、別のバージョンでも理論上、問題ありません。
2. AgilerQrcodeGenerator-0.1.0-all.jar の配置
- リビルド操作を実行して、libフォルダを作成します。
※ buildエラーが起きた場合は、FAQ「ビルドエラー」を確認してください。 - Webフォルダ配下の
libフォルダを探します(libsではなくlib)。 - ダウンロードした
AgilerQrcodeGenerator-0.1.0-all.jarを、このフォルダにコピーしてください。
3. AgilerQrcodeGenerator-0.1.0.xpz のインポート
XPZファイルをインポートした後、次の2つのオブジェクトの存在を確認してください。
さらに、次のファイルオブジェクトの存在を確認してください。
4. プロシージャーオブジェクトで、QRコードを印刷するには
- 変数
- レイアウト
- ソース / ルール
ここで、6行目のDenpyoURLは、例です。QRコードとして印字したい情報で、定数でもかまいません。
5. 出力例
デプロイ方法例
すでに、KBのfileオブジェクトとして、次のオブジェクトがあることを確認してください。
確認後、デプロイファイルにこのファイルを加えてください
FAQ
Q:QRコードをPDFに印刷できますか。
はい、前述の実装例を確認ください。
Q:ビルド時にJavaエラーが発生する
Java環境が正しく設定されているか確認してください。 JAVA_HOMEを含め GeneXus の Java Generator 設定のJava Versionの一致の確認をお勧めします。 Java 1.8をお使いで次のエラーの場合、最新版の1.8の利用をお勧めします。
apply services.webnotifications.genexus.gradle > Task :assemble > Task :check > Task :build > Task :compileJava FAILED > Task :copyAdditionalFiles > Task :copyRuntimeLibs FAILED FAILURE: Build completed with 2 failures. 1: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':compileJava'. > Could not resolve all files for configuration ':compileClasspath'. > Could not download gxwebsocket-4.4.0.jar (com.genexus:gxwebsocket:4.4.0)
Q:QRコード画像が生成されない
生成先ディレクトリの権限やパス設定を確認してください。また、QRコードの出力がlinux上されているのか、ライブラリの戻り値のログ(JSON)の確認をおすすめします。
Q:実行時例外が発生した
次のエラーが発生した場合は、jarへの接続がおかしいことを意味しています。本稿のデプロイ方法をもう一度確認して、デプロイ時にjarファイルをいれたか確認してください。
Q:サポートはありますか?
バグ報告は GitHub Issue で受け付けています。
個別のメールやzoomでの対応、カスタマイズなどは、有償で対応しています。