2010-11-24 98 views
3

我正在尝试将HTML导出引入基于JasperReports的报表引擎。 HTML文档生成的很好,但问题从包含图像时开始。与PDF相比,图像不是HTML的一部分。如何将JasperReport导出为HTML,而不将图像保存到磁盘上?

我迄今发现的解决方案是:

JRHtmlExporter exporter = new JRHtmlExporter(); 

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE); 
exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, "./images/"); 
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/images/"); 
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); 
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream); 

exporter.exportReport(); 

这样,所有的图像由JasperReports的自动生成并保存在此“图片”文件夹中。它们也被HTML文件正确引用。

问题是图像在文件夹中保存得太晚,用户需要刷新已收到的HTML页面才能看到它们。这真的不太好,我也不明白为什么图像应该保存,因为它们是由JasperReports自动生成的。

我该如何告诉JasperReports以某种方式将图像存储在内存中以及用户在这种情况下如何访问它们?

回答

3

检查Jasper示例(源代码发布的一部分),它有一个'webapp'示例,显示如何使用图像servlet来实现此目的。