代码之家  ›  专栏  ›  技术社区  ›  m_pGladiator

如何将jaspereport导出为HTML,而不将图像保存在磁盘上?

  •  3
  • m_pGladiator  · 技术社区  · 14 年前

    我正在尝试向我们基于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以某种方式将图像存储在内存中,以及在这种情况下用户将如何访问它们?

    1 回复  |  直到 14 年前
        1
  •  3
  •   yshalbar    14 年前

    检查Jasper示例(源发行版的一部分),它有一个“webapp”示例,展示了如何使用图像servlet来实现这一目的。