我已在我的 oracle 数据库中将图像保存为 BLOB。我的模型类包含 byte[] 图像;对应于数据库中的 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() );
我使用 iReport 创建 jrxml 文件
在我的 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格式的图像。