Cómo recopilar múltiples informes jrxml jasper en un solo archivo de salida pdf

Tengo que preparar informes utilizando cinco consultas sql diferentes. Cada consulta dará una tabla de informe.

Así que escribí 5 archivos jrxml, cada uno correspondiente a una de las consultas anteriores con sus propios títulos, configuraciones de título, pies de página, números de página, etc.

Ahora, puedo compilar, imprimir y exportar cada uno de los jrxmls anteriores en 5 archivos PDF diferentes.

Sin embargo, el cliente quiere que todos los informes se agrupen en un solo pdf. Eso está en el pdf final, las primeras cuatro páginas serán decir informe uno, las siguientes cinco páginas informarán dos, luego informe tres y así sucesivamente.

1) ¿Cómo lograr esto?

2) Cada informe tiene un número de página como 1/4, 2/4, 3/4, etc. Donde la segunda parte, es decir, el número de página completo se evalúa con el tiempo de evaluación como informe. Entonces, cuando coteje todos los informes en un solo pdf (si es posible), ¿también será posible volver a numerar las páginas para justificar el pdf final?

Basado en la respuesta a continuación, hice lo siguiente en mi clase de Java y funciona:

 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();
            }

Above: input1, input2, input3 son rutas de cadena para ingresar jrxmls

Donde mis archivos JRXML solo imprimen tres mensajes: 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>

¡Gracias por leer

Respuestas a la pregunta(8)

Su respuesta a la pregunta