Как объединить несколько отчетов JRXML JASPER в один выходной файл PDF

Я должен подготовить отчеты, используя пять различных запросов SQL. Каждый запрос выдаст одну таблицу отчетов.

Поэтому я написал 5 файлов jrxml, каждый из которых соответствует одному из указанных выше запросов, со своими собственными заголовками, настройками заголовков, нижними колонтитулами, номерами страниц и т. Д.

Теперь я могу скомпилировать, распечатать и экспортировать каждый из вышеуказанных jrxmls в 5 различных PDF-файлов.

Однако клиент хочет, чтобы все отчеты были объединены в один PDF-файл. То есть в последнем pdf, первые четыре страницы будут, скажем, сообщать один, следующие пять страниц сообщают о двух, затем сообщать о трех и так далее, и так далее.

1) Как этого добиться?

2) Каждый отчет имеет номер страницы 1/4, 2/4, 3/4 и т. Д. Где вторая часть, т. Е. Полный номер страницы, оценивается со временем оценки в виде отчета. Поэтому, когда я сопоставлю все отчеты в одном PDF-файле (если это возможно), можно ли будет изменить нумерацию страниц в окончательный формат PDF?

Основываясь на ответе ниже, я сделал следующее в своем классе Java, и это работает:

 try
            {
            JasperReport jreport1 = JasperCompileManager.compileReport(input1);
            JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, new HashMap(), new JREmptyDataSource());
            //JasperExportManager.exportReportToPdfFile(jprint, "/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytest.pdf");

            JasperReport jreport2 = JasperCompileManager.compileReport(input2);
            JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, new HashMap(), new JREmptyDataSource());

            JasperReport jreport3 = JasperCompileManager.compileReport(input3);
            JasperPrint jprint3 = JasperFillManager.fillReport(jreport3, new HashMap(), new JREmptyDataSource());

            List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();

            jprintlist.add(jprint1);
            jprintlist.add(jprint2);
            jprintlist.add(jprint3);

            JRExporter exporter = new JRPdfExporter();
            exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);

            OutputStream output = new FileOutputStream(new File("/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytestbatch.pdf"));

            exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
            exporter.exportReport();

            }catch(Exception e)
            {
                e.printStackTrace();
            }

Вверху: input1, input2, input3 - это строковые пути для ввода jrxmls

Где мои файлы JRXML просто печатают три сообщения: Hello World 1, Hello World 2, Hello World 3.

 <?xml version="1.0"?>
<!DOCTYPE jasperReport
  PUBLIC "-//JasperReports//DTD Report Design//EN"
  "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="Simple_Report">
 <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World One!]]></text>
      </staticText>
    </band>
  </detail>
</jasperReport>

Спасибо за чтение!

Ответы на вопрос(4)

Ваш ответ на вопрос