Como agrupar vários relatórios jrxml jasper em um único arquivo de saída pdf
Preciso preparar relatórios usando cinco consultas sql diferentes. Cada consulta fornecerá uma tabela de relatório.
ntão escrevi 5 arquivos jrxml, cada um correspondente a uma das consultas acima, com seus próprios títulos, configurações de título, rodapés, números de páginas, et
gora, sou capaz de compilar, imprimir e exportar cada um dos jrxmls acima em 5 PDFs diferente
No entanto, o cliente deseja que todos os relatórios sejam agrupados em um único pdf. No PDF final, as quatro primeiras páginas serão, por exemplo, o relatório um, as próximas cinco páginas o relatório dois, o relatório três e assim por diant
1) Como conseguir isso?
2) Cada relatório tem o número da página como 1/4, 2/4, 3/4 etc. Onde a segunda parte, isto é, o número completo da página é avaliado com o tempo de avaliação como relatório. Portanto, quando reunirei todos os relatórios em pdf único (se possível), também será possível renumerar as páginas justificando o pdf final?
Com base na resposta abaixo, fiz o seguinte na minha classe java e 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 são caminhos de string para entrada jrxmls
Onde meus arquivos JRXML apenas imprimem três mensagens: Olá Mundo 1, Olá Mundo 2, Olá Mundo 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>
Obrigado pela leitura!