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();
}