teodord wrote: Hi, You could copy JRPrintPage objects from one JasperPrint to another. It would probably make sense to copy report styles too. This is not tested, but chances are hight it would work. I hope this helps. Teodor I tried this, but it didn't work for me. The final report had the right number of pages, but every page was blank. I've attached a PDF example of the final output that I'm looking for that I created using another reporting tool (ReportMill). However, we would prefer to use an open-source solution if we can get it to work. I want to be able to view the full report (all pages) in JasperViewer not just export to PDF. Basically, each page is it's own report, so I want to combine multiple one page reports into one full report. Here's my code. Am I doing something wrong? Code:ArrayList ReportPages = new ArrayList(); for (int a=0; a < testTypes.length; a++) { Map paramMap = new HashMap(); paramMap.put("Test Type", testTypes[a].type.toString()); paramMap.put("chart", testTypes[a].getImage()); Map map = new HashMap(); map.put("variable", "Average"«»); map.put("value", testTypes[a].getAverage()); varList.add(map); map = new HashMap(); map.put("variable", "Best"«»); map.put("value", testTypes[a].getBest()); varList.add(map); JRMapCollectionDataSource dataSource = new JRMapCollectionDataSource(varList); JasperPrint print = JasperFillManager.fillReport("Report.jasper", paramMap, dataSource); reportPages.add(print); } JasperPrint report = new JasperPrint(); for (int a=0; a < reportPages.size(); a++) { JasperPrint typeReport = (JasperPrint) reportPages.get(a); ArrayList list = (ArrayList) typeReport.getPages(); for (int j=0; j < list.size(); j++) { report.addPage((JRPrintPage) list.get(j)); } } JasperViewer jasperViewer = new JasperViewer(report, false); jasperViewer.setVisible(true);