我正在尝试向我们基于jaspereports的报表引擎引入一个HTML导出。HTML文档生成得很好,但当它包含图像时,问题就开始了。与PDF相比,这些图像不是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();
这样,jaspereports会自动生成所有图像并保存在这个“images”文件夹中。HTML文件也正确地引用了它们。
问题是图像保存在文件夹中太晚,用户需要刷新已收到的HTML页面才能看到它们。这真的不太好,而且我也不明白为什么要保存这些图像,因为它们无论如何都是由jaspereports自动生成的。
如何告诉jaspereports以某种方式将图像存储在内存中,以及在这种情况下用户将如何访问它们?