イメージを Oracle データベースに BLOB として保存しました。モデル クラスには byte[] image; が含まれています。データベースの BLOB フィールドに対応します。データベース内のすべての画像を PDF にエクスポートする必要があります。Javaでは、次のコードを使用しました:
JasperReport jasperReport = JasperCompileManager.compileReport('jrxml file');
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(imageObjList);
//imageObjList containing the model 'ImageObj' which contain byte[] image
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,jasperParameter,ds);
JasperExportManager.exportReportToPdfStream(jasperPrint,responce.getOutputStream() );
jrxmlファイルの作成にiReportを使用しました
私のjrxmlでは、フィールドクラスタイプがjava.io.InputStreamのイメージとしてフィールドを作成します
私の画像では、画像式を $F{image} として指定し、画像クラス式を java.awt.Image として指定しました。
PDF レポートを作成できません。
私は例外を取得しています
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression:
Source text : $F{image}
.....
Caused by: java.lang.ClassCastException: [B cannot be cast to java.io.InputStream
at ImageReport_1374240048064_891215.evaluate(ImageReport_1374240048064_891215:171)
pdfの画像が必要です。