系统整合 jasperreports 6.x 导出 HTML 的工具方法

jasperreports 6.x 的说明文档洋洋洒洒 300 多页(英文),却没有找到 jasperreports 6.x 如何整合进系统的内容,也是醉咯。所以这里总结如下:

/**
     * 导出为 HTML(字符串)
     * @param params 参数映射关系
     * @param reportTemplateName 报表名称(*.jasper 后缀)
     * @return HTML 文件
     */
    public String exportToHTML(Map params,
                               String reportTemplateName) {
        if (params == null || params.isEmpty()) {
            throw new IllegalArgumentException("params");
        }
        if (StringUtils.isBlank(reportTemplateName)) {
            throw new IllegalArgumentException("reportTemplateName");
        }

        try {
            Resource template = new ClassPathResource
                    (REPORT_TEMPLATE_PATH_PREFIX + reportTemplateName);
            File html = File.createTempFile("temp", ".html");
            HtmlExporter exporter = new HtmlExporter();
            exporter.setExporterInput(new SimpleExporterInput(JasperFillManager.fillReport(template.getInputStream(), params,
                    connection)));
            exporter.setExporterOutput(new SimpleHtmlExporterOutput(html));
            exporter.exportReport();
            return TextFile.read(html);
        } catch (JRException e) {
            logger.error("导出为 HTML", e);
        } catch (IOException e) {
            logger.error("导出为 HTML", e);
        }
        return null;
    }
  • params :是需要传入报表的参数映射关系;Key:参数名;Value:参数值。
  • reportTemplateName:是 Jaspersoft Studio 6.x 编译后的文件,在 Jaspersoft Studio 的 Project Explorer 中即可看到:

  • jasper:是编译后的文件。
  • jrxml:是源文件。

源代码中的 REPORT_TEMPLATE_PATH_PREFIX 是报表模板的相对路径,记得要把报表设计文件放在 classPath 下哦O(∩_∩)O~

其中的 TextFile 类用于读取文件内容,详情 请参见。

你可能感兴趣的:(报表,html,Java,报表)