「Java/帳票/JasperReports5.0 PDFに動的に画像を埋め込み」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
* Java/帳票/JasperReports5.0 PDFに動的に画像を埋め込み
* まずJasperReportsに付いてきたサンプルから画像の埋め込み方を確認。
#highlight(java){{
// 画像読み込み
Image image = Toolkit.getDefaultToolkit().createImage(
JRLoader.loadBytesFromResource("dukesign.jpg"));
// 画像の読み込み完了を待つ
MediaTracker traker = new MediaTracker(new Panel());
traker.addImage(image, 0);
try {
traker.waitForID(0);
} catch (Exception e) {
e.printStackTrace();
}
// パラメータ作成
Map<String, Object> parameters = new HashMap<String, Object>();
// 読み込んだ画像をパラメータに設定
parameters.put("SummaryImage", image);
}}
- JasperReportsのサンプル「jasper」から抜き出したコードです。
- やってることはとても簡単、以下の3点だけです。
+ JRLoaderで画像を読み込む
+ トラッカーで画像の読み込み完了を待つ
+ 読み込んだ画像をパラメータのマップに埋め込む
&ref(JasperSample4_1.png)
- JasperReportsのサンプル「jasper」用のレポートです。
- こちらもやることは簡単で、以下の2点です。
+ レポートにImageをのっける
+ ImageExpressionに「$P{SummaryImage}」の形式で、パラメータに設定した画像を指定する
* それではサンプルを作ってみましょう。
* サンプルテンプレート
&ref(JasperSample4_2.png)
- [[前回>Java/帳票/JasperReports5.0 CSVデータソースからPDF出力]]使った、テンプレートを加工して、判子を押す箱を「frame」で作りました。
- そして、画像を埋め込むimageに判子画像をパラメータで渡して表示してみます。
-- imageのImageExpressionには「$P{Image1}」を指定しました。
* サンプルプログラム &ref(JasperSample4.java)
#highlight(java){{
// (2)パラメータの生成
Map<String, Object> parameters = new HashMap<String, Object>();
// 画像をパラメータに設定(手抜き)
Image img = new ImageIcon("ちゃぱてぃ.gif").getImage();
parameters.put("Image1", img);
}}
- [[前回>Java/帳票/JasperReports5.0 CSVデータソースからPDF出力]]使った、JasperSample3.javaの変更部分です。
- JasperReportsに付属のjasperサンプルより少々手抜きなコードになってますが、必要ならトラッキングも追加して下さい。
- &ref(JasperSample4.java)をダウンロードすると、変更部分以外のサンプルフルになっています。
* 読み込ませる画像
&ref(ちゃぱてぃ.gif)
- 透過GIF作ってみたんですが、後ろのオブジェクトを透過させる事ができなかったので、普通に判子画像だけ埋め込みました。
* 実行結果
&ref(JasperSample4_3.png)
- [[前回>Java/帳票/JasperReports5.0 CSVデータソースからPDF出力]]と少々変わってますが、ちゃんと判子の枠の中に今回作った判子画像が埋め込まれています。
* サンプルダウンロード
サンプルソース &ref(JasperSample4.java)
サンプル用csv &ref(JasperSample4.csv)
出力pdf &ref(JasperSample4.pdf)
サンプル用テンプレート &ref(JasperSample4.jrxml)
はんこ画像 &ref(ちゃぱてぃ.gif)
* Java/帳票/JasperReports5.0 PDFに動的に画像を埋め込み
* まずJasperReportsに付いてきたサンプルから画像の埋め込み方を確認。
#highlight(java){{
// 画像読み込み
Image image = Toolkit.getDefaultToolkit().createImage(
JRLoader.loadBytesFromResource("dukesign.jpg"));
// 画像の読み込み完了を待つ
MediaTracker traker = new MediaTracker(new Panel());
traker.addImage(image, 0);
try {
traker.waitForID(0);
} catch (Exception e) {
e.printStackTrace();
}
// パラメータ作成
Map<String, Object> parameters = new HashMap<String, Object>();
// 読み込んだ画像をパラメータに設定
parameters.put("SummaryImage", image);
}}
- JasperReportsのサンプル「jasper」から抜き出したコードです。
- やってることはとても簡単、以下の3点だけです。
+ JRLoaderで画像を読み込む
+ トラッカーで画像の読み込み完了を待つ
+ 読み込んだ画像をパラメータのマップに埋め込む
&ref(JasperSample4_1.png)
- JasperReportsのサンプル「jasper」用のレポートです。
- こちらもやることは簡単で、以下の2点です。
+ レポートにImageをのっける
+ ImageExpressionに「$P{SummaryImage}」の形式で、パラメータに設定した画像を指定する
* それではサンプルを作ってみましょう。
* サンプルテンプレート
&ref(JasperSample4_2.png)
- [[前回>Java/帳票/JasperReports5.0 CSVデータソースからPDF出力]]使った、テンプレートを加工して、判子を押す箱を「frame」で作りました。
- そして、画像を埋め込むimageに判子画像をパラメータで渡して表示してみます。
-- imageのImageExpressionには「$P{Image1}」を指定しました。
* サンプルプログラム &ref(JasperSample4.java)
#highlight(java){{
// (2)パラメータの生成
Map<String, Object> parameters = new HashMap<String, Object>();
// 画像をパラメータに設定(手抜き)
Image img = new ImageIcon("ちゃぱてぃ.gif").getImage();
parameters.put("Image1", img);
}}
- [[前回>Java/帳票/JasperReports5.0 CSVデータソースからPDF出力]]使った、JasperSample3.javaの変更部分です。
- JasperReportsに付属のjasperサンプルより少々手抜きなコードになってますが、必要ならトラッキングも追加して下さい。
- &ref(JasperSample4.java)をダウンロードすると、変更部分以外のサンプルフルになっています。
* 読み込ませる画像
&ref(ちゃぱてぃ.gif)
- 透過GIF作ってみたんですが、後ろのオブジェクトを透過させる事ができなかったので、普通に判子画像だけ埋め込みました。
* 実行結果
&ref(JasperSample4_3.png)
- [[前回>Java/帳票/JasperReports5.0 CSVデータソースからPDF出力]]と少々変わってますが、ちゃんと判子の枠の中に今回作った判子画像が埋め込まれています。
* サンプルダウンロード
サンプルソース &ref(JasperSample4.java)
サンプル用csv &ref(JasperSample4.csv)
出力pdf &ref(JasperSample4.pdf)
サンプル用テンプレート &ref(JasperSample4.jrxml)
はんこ画像 &ref(ちゃぱてぃ.gif)
* コメント
#pcomment(reply)