我希望在 Jaspersoft Studio 的报告中,在详细信息区域中插入来自数据库的图像
JPG图像保存在MySQL中 longblob 类型 imgdata 字段中。
我试图把这个表达式放在Image元素中:
$F{imgdata}
MyUtil.getInputStream($F{imgdata})
在第一种情况下,我收到此错误:
net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Unknown image source class [B
......第二种情况是这个错误:
net.sf.jasperreports.engine.JRException:
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error
evaluating expression : Source text :
MyUtil.getInputStream($F{imgdata})
我的问题: 如何将数据库中的图像插入到 JasperReports 的报告中?
答案 0 :(得分:10)
打开.jrxml文件的XML视图。 然后找到与此类似的代码
<field name="image" class="java.lang.Object"/>
/* "image" must be replaced by your actual field name */
并将其更改为
<field name="image" class="java.io.InputStream"/>
答案 1 :(得分:5)
似乎我自己解决了这个问题。
以下是我完成的步骤:
1)图片报告字段的表达式应为: $ F {imgdata}
(注意: imgdata 是存储图像数据的数据库字段的名称)
2)打开报告的“数据集和查询对话框”,将 imgdata 字段的类型从java.lang.Object更改为 java .io.InputStream (查看截图 ---抱歉,我没有足够的声望点来发布图片)。关闭对话框。
3)切换到Preview-Tab生成报告。现在,您应该在报告中看到图像。