创建合并的JasperReport的最佳方法

时间:2018-07-18 14:31:33

标签: java jasper-reports export-to-pdf

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

我已经创建了一个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 列表的功能。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试更改:

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

具有:

exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(bos)); 

并添加return语句:

 return bos.toByteArray();

我认为该解决方案可以为您提供帮助。