2011-12-08 19 views
6

Đối tượng jasperPrint có hướng dọc, nhưng đối tượng jasperPrint2 có hướng ngang. Tôi muốn kết hợp hai jasperprints để sản xuất một tập tin pdf nhưng giữ định hướng ban đầu của họ. Khi tôi thêm các trang jasperPrint2 vào jasperPrint thì jasperPrint cuối cùng có hướng dọc ... Tôi đã thử nghiệm jasperPrint.setOrientation(JasperReport.ORIENTATION_LANDSCAPE) nhưng không có gì thay đổi.Cách kết hợp một số đối tượng JasperPrint để có một báo cáo với hướng trang hỗn hợp

Làm cách nào tôi có thể tạo một tệp pdf từ hai jasperprints giữ nguyên định hướng ban đầu của chúng?

Tôi có đoạn mã sau:

JasperReport report = (JasperReport) JRLoader.loadObject(reportFile2.getPath()); 
jasperPrint = JasperFillManager.fillReport(report, parameters, conn); 

JasperReport report2 = (JasperReport) JRLoader.loadObject(reportFile.getPath()); 
jasperPrint2 = JasperFillManager.fillReport(report2, parameters, conn); 

List pages = jasperPrint2.getPages(); 
for (int j = 0; j < pages.size(); j++) { 
    JRPrintPage object = (JRPrintPage) pages.get(j); 
    jasperPrint.addPage(object); 
} 
+1

Bạn có thể nhìn vào [bài này] (http://stackoverflow.com/questions/8564163/how-to-collate-multiple-jrxml-jasper-reports-into-a-one-single-pdf -output-file) –

Trả lời

1

Bạn có thể thực hiện điều này bằng cách thực hiện một xuất hàng loạt.

//put all the jasperPrints you want to be combined into a pdf in this list 
List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>(); 

JasperReport report = (JasperReport) JRLoader.loadObject(reportFile2.getPath()); 
jasperPrintList.add(JasperFillManager.fillReport(report, parameters, conn)); 

JasperReport report2 = (JasperReport) JRLoader.loadObject(reportFile.getPath()); 
jasperPrintList.add(JasperFillManager.fillReport(report2, parameters, conn)); 

ByteArrayOutputStream baos = new ByteArrayOutputStream();  
JRPdfExporter exporter = new JRPdfExporter();  
//this sets the list of jasperPrint objects to be exported and merged 
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList); 
//the bookmarks is a neat extra that creates a bookmark for each jasper print 
exporter.setParameter(JRPdfExporterParameter.IS_CREATING_BATCH_MODE_BOOKMARKS, Boolean.TRUE); 
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);  
exporter.exportReport();   
return baos.toByteArray(); 
Các vấn đề liên quan