Jasperreport Zusammenlegen mehrer PDFs mit Batch-Exporter

Folgender Programmcode zeigt, wie zwei oder mehrere PDFs durch Jasperreport batch-exporter zusammengelegt werden können.

 

    @Override
    public byte[] getPDFStream(Report report) throws JRException {

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        // first report
        File reportFile = new File("...");
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile);
        
        Map<String, Object> reportParameters = report.getReportParameters();
        JRBeanArrayDataSource beanDataSource = new JRBeanArrayDataSource(new Object[] { report });

        JasperPrint print = JasperFillManager.fillReport(jasperReport, reportParameters, beanDataSource);
        
        // second report
        File reportFile1 = new File("...");
        JasperReport jasperReport1 = (JasperReport) JRLoader.loadObject(reportFile1);
        
        Map<String, Object> reportParameters1 = report.getReportParameters();
        JRBeanArrayDataSource beanDataSource1 = new JRBeanArrayDataSource(new Object[] { report });
        
        JasperPrint print1 = JasperFillManager.fillReport(jasperReport1, reportParameters1, beanDataSource1);
        
        // merge using JRPdfExporter
        List<JasperPrint> jpList = new ArrayList<JasperPrint>();
        jpList.add(print);
        jpList.add(print1);
        
        JRPdfExporter exporter = new JRPdfExporter();
        exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jpList); 
        exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, outputStream);
        exporter.exportReport();
        
        return outputStream.toByteArray();
    }

你可能感兴趣的:(pdf,merge,jasperReport)