JasperReports报表中如何将图片做为参数传送

发布于 2021-11-20 15:06:46 字数 1222 浏览 892 评论 8

有这样的需求,jasperreports报表的图片是动态传送过去的,在ireport的图片参数中看到expression class下拉里可以选择InputStream,javax.awt.Image等,但是当我将这些类型的参数分别传过去后,会报类似

net.sf.jasperreports.engine.JRException: Byte data not found at : java.io.FileInputStream@2af8f5

的错,试了很多种流类型都不行,断点跟踪源码,发现在

void net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(byte evaluation) throws JRException

方法的

Object source = evaluateExpression(expression, evaluation);

此行代码执行后返回的source对象就为java.lang.String类型,但是下面的判断 

if (source instanceof Image)
...
else if (source instanceof InputStream)
...
else if (source instanceof URL)
...
else if (source instanceof File)
...
else if (source instanceof String)
...
else if (source instanceof JRRenderable)
...
else
...

只能执行到"source instanceof String"中

 

不知道是不是我设置错了什么参数,还是这本来就是个bug,请教一下大家有没有遇到过这种问题?

 

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

终遇你 2021-11-21 11:30:30

今天用
InputStream设置image也遇到同样的问题,求解。。在ireport中设置expression class没有用,是不是要在jasperreport后台设置相关参数?如果方便能不能帮忙查一下源码,不胜感激!

终遇你 2021-11-21 11:30:16

今天用
InputStream设置image也遇到同样的问题,求解。。在ireport中设置expression class没有用,是不是要在jasperreport后台设置相关参数?如果方便能不能帮忙查一下源码,不胜感激!

辞别 2021-11-21 11:30:05

今天用
InputStream设置image也遇到同样的问题,求解。。在ireport中设置expression class没有用,是不是要在jasperreport后台设置相关参数?如果方便能不能帮忙查一下源码,不胜感激!

傾城如夢未必闌珊 2021-11-21 11:29:54

好久之前的研究,好像忘了

深巷少女 2021-11-21 11:29:54

今天用
InputStream设置image也遇到同样的问题,求解。。在ireport中设置expression class没有用,是不是要在jasperreport后台设置相关参数?如果方便能不能帮忙查一下源码,不胜感激!

各自安好 2021-11-21 11:25:51

请问楼主是如何解决的呢?在ireport要如何设置的?项目中还需要配置其他吗?

偏爱自由 2021-11-21 09:36:18

设置问题...唉~纠结~

参数那里选择InputStream

看透却不说透 2021-11-21 07:01:14

没搞过

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文