java - 创建合并的 JasperReport 的最佳方式

标签 java jasper-reports export-to-pdf

在我的 Java 网络应用程序中,我确实生成了一份报告,每个客户检测到一页。

我创建了一个 JasperReport,如果客户列表超过 1 个,我想合并生成的报告。

这是我的代码:

if(myList.size()==1) {
        JasperPrint jp = reportGenerated(myList.get(0).getCustomer());
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        JasperExportManager.exportReportToPdfStream(jp, bos);

        return bos.toByteArray();
    }else {
        for(Object s: myList) {
                                jasperPrints.add(reportGenerated(s.getCustomer()));
            }
        }
        ByteArrayOutputStream bos = new ByteArrayOutputStream(); 

        JRPdfExporter exporter = new JRPdfExporter();
        exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrints));
        exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("pdf/lettera.pdf")); 
        SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();

        configuration.setCreatingBatchModeBookmarks(true); 
        exporter.setConfiguration(configuration);
        exporter.exportReport();


    }

我想获取合并后的PDF,但在ByteArrayOutputStream中找不到导出JasperPrint列表的功能。

有什么建议吗?

最佳答案

尝试改变:

exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("pdf/lettera.pdf"))

与:

exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(bos)); 

并添加返回语句:

 return bos.toByteArray();

我认为这个解决方案可以帮助您。

关于java - 创建合并的 JasperReport 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51404694/

相关文章:

javascript - jQuery - 将具有树结构的 HTML 表格导出为 PDF/Excel

java - 我想返回一些东西并执行一些其他方法。 JAVA有什么办法吗?

java - 计算器对所有提出的问题返回 0.0

pdf - 如何在 JasperReports 中压缩 PDF

html - 如何使用包含页眉和页脚的自动页面格式将 HTML 页面导出为 PDF 格式

fonts - Jasper iReport 在 Chrome 中生成的 PDF 中的问题

java - 在 Hibernate 中映射集合的简单值类型时出现异常

java - 使用 Transformer 在查询中绑定(bind)变量

java - Jasper - ire​​port - java web 应用程序 - 数据源静态方法

jasper-reports - 如何在碧 Jade 报告中下标一个字段