如何使用JasperReports查看Oracle中blob列的图像?
我尝试在报表布局中定义一个图像元素,并将类型设置为java.io.Inputstream,但这不起作用,我也尝试设置为java.awt.Image并且都不起作用,我得到的例外是
java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image
要么
java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.io.InputStream
我也尝试谷歌,但结果是我现在正在做的事情。
谢谢你的帮助。
没有看到你如何调用blob将图像嵌入报告代码中…
- 使用
blob.getBinaryStream()
。 - 使用
javax.imageio.ImageIO.read( InputStream )
转换流。
例如:
javax.imageio.ImageIO.read( blob.getBinaryStream() )
这将返回BufferedImage
的实例,该实例是java.awt.Image
子类,并且应该是嵌入到报表中的合适对象。
示例中显示的blob
变量必须使用报表中的相应变量(表示来自所需列的数据)。
也可以看看:
InputStream is = new ByteArrayInputStream((byte[]) yourBlobData); myImage = new DefaultStreamedContent(is, "image/png");
在jsf页面;
- 如何在运行时更改页面格式?(jasperreport)
- 如何创建单个表达式,显示两个日期之间的时差,如年,月,日,小时,分钟,秒
- Jasper报告在netbeans中运行良好,但在部署为jar应用程序时会出现exception
- 如何在java中使用JRSwapFileVirtualizer进行jasper报告
- 如何在碧玉报告中解决uuid问题
- 无法通过JRXmlLoader加载位于jar文件中的jrxml:获取java.io.FileNotFoundException
- 如何以3个样本打印碧玉报告,几乎没有变化?
- 什么版本的JaspeReports支持Java 8?
- 如何将报告导出为PDF / A-1a,PDF / A-1b?