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

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

/**
     * 导出为 HTML(字符串)
     * @param params 参数映射关系
     * @param reportTemplateName 报表名称(*.jasper 后缀)
     * @return HTML 文件
     */
    public String exportToHTML(Map<String, Object> 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 中即可看到:

Project Explorer

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值