Ireportの複数のレポートテンプレートからpdfファイルをエクスポート
1256 ワード
詳細
シナリオ:現在、多くの印刷テンプレートがあり、異なる出荷経路に基づいてテンプレートパスを指定しています.現在、PDFファイルにエクスポートできるのは、1つの出荷経路の印刷テンプレートのみです.ただし、お客様は、複数の出荷経路の印刷テンプレートを1つのPDFファイル、すなわち複数のレポートテンプレートを1つのPDFファイルに一括してエクスポートしたいと考えています.
解決方法:
シナリオ:現在、多くの印刷テンプレートがあり、異なる出荷経路に基づいてテンプレートパスを指定しています.現在、PDFファイルにエクスポートできるのは、1つの出荷経路の印刷テンプレートのみです.ただし、お客様は、複数の出荷経路の印刷テンプレートを1つのPDFファイル、すなわち複数のレポートテンプレートを1つのPDFファイルに一括してエクスポートしたいと考えています.
解決方法:
String path = this.getServletContext().getRealPath("/");
JasperPrint jasperPrint = JasperFillManager.fillReport(path+"Pilipinas_hot.jasper",new HashMap(), new JREmptyDataSource());
JasperPrint jasperPrint2 = JasperFillManager.fillReport(path+"Malaysia_hot.jasper",new HashMap(), new JREmptyDataSource());
List jasperPrintList = new ArrayList();
jasperPrintList.add(jasperPrint);
jasperPrintList.add(jasperPrint2);
//
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST,jasperPrintList);//
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);// pdf
exporter.exportReport();
byte[] bytes= baos.toByteArray();
FileOutputStream fos = new FileOutputStream(new File("D://test.pdf"));
fos.write(bytes);
fos.flush();
fos.close();