Não sei você, mas eu sempre tive uma grande dificuldade com a API do JasperReports para gerar relatórios em PDF. Novo projeto significa reaprender a API. E acreditem, não tem como decorar um código que você praticamente escreve uma única vez e nunca mais olha.
Eu não gosto de simplesmente colar um código de um projeto em outro sem antes entender o que aquele código faz e como funciona. Por exemplo, para gerar relatórios nas minhas aplicações é comum ter um código semelhante a este:
// parametros String jrxml = "/relatorios/todos-cursos.jrxml"; Map<String, Object> parametros = new HashMap<>(); Connection conexao = new ConnectionFactory().getConnection(); // gera relatorio pdf GeradorDeRelatorios gerador = new GeradorDeRelatorios(conexao); File pdf = gerador.geraPdf(jrxml, parametros); // escreve na saida do response Files.copy(pdf.toPath(), output);
O código é bem simples, não é? Isso porque toda a complexidade da API do JasperReports está encapsulada dentro da classe GeradorDeRelatorios
. Todos os detalhes estão dentro dela e do seu método geraPdf
. Dentro deste método existem 3 passos importantes para gerar relatórios em PDF, os relatórios que você desenhou com o iReport.
Para entender os 3 passos e o que realmente importa na API do JasperReports eu recomendo você ler meu novo post no blog da TriadWorks:
>> Como gerar relatórios PDF na Web com JasperReports
A verdade é que eu escrevi esse post para NUNCA mais esquecer como a API funciona e como posso tirar proveito dela. Ainda no post, eu aproveito para ensinar como disponibilizar seu PDF para download na sua aplicação Web.
E ai, como você implementou sua classe para gerar relatórios?