2011-12-08 16 views
6

L'oggetto jasperPrint ha l'orientamento verticale, ma l'oggetto jasperPrint2 ha l'orientamento orizzontale. Voglio combinare le due jasperprints per produrre un file pdf ma mantenendo il loro orientamento originale. Quando aggiungo le pagine di jasperPrint2 a jasperPrint, l'ultimo jasperPrint ha l'orientamento verticale ... Ho provato lo jasperPrint.setOrientation(JasperReport.ORIENTATION_LANDSCAPE) ma non è cambiato nulla.Come combinare diversi oggetti JasperPrint per avere un report con orientamento misto della pagina

Come posso produrre UN file PDF dalle due jasperprints mantenendo il loro orientamento originale?

Ho il codice seguente:

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

Potete guardare [questo post] (http://stackoverflow.com/questions/8564163/how-to-collate-multiple-jrxml-jasper-reports-into-a-one-single-pdf -file di uscita) –

risposta

1

È possibile raggiungere questo obiettivo facendo un'esportazione in batch.

//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(); 
Problemi correlati