Estou trabalhando em um projeto onde gero os relatórios, salvo em disco, abro uma nova mensagem do Outlook já com os arquivos anexados.
Está funcionado perfeitamente, minha duvida é se é possível pular uma das etapas, ou seja, gerar os relatórios em PDF sem salvar em disco.
Sim é possível sim.
Basta apenas você obter os binários do relatório pelo método static “runReportToPdf” da classe JasperRunManager. Com os binários você possui o pdf em memoria, podendo depois gerar o relatorio quando precisar
byte[] pdf = JasperRunManager.runReportToPdf(jasperReport, parametros,connection);
Mas desse jeito não dará certo no projeto aqui, como temos muitos relatorios diferentes fizemos uma classe que determina qual é o relatorio da vez e faz os procedimentos necessarios e devolve apenas um JasperPrint esse JasperPrint pode ser usado de duas maneiras na minha aplicação:
Se o usuario escolheu a opção “visualizar relatorio” eu adiciono o JasperPrint num viewer que fizemos e esse é apresentado em um modal.
Se o usuario escolheu a opção “mandar e-mail” eu adicono o JasperPrint em um JasperExportManager.exportReportToPdfFile e gero o arquivo em uma determinada pasta, gero o e-mail com os relatorios anexados…
Então eu estou procurando um jeito de gerar o arquivo em memoria usando apenas o JasperPrint…
Mas estou começando a achar que não tem jeito não…