O arquivo não abre sozinho.
É necessário algum mecanismo a parte para ler o arquivo e exibí-lo em um programa específico (ex.: Adobe Reader ou browser).
ze_kiefa
Aproveitando a oportunidade, segue um exemplo para exportar em Excel.
StringcaminhoRelJasper="EstimativaColheitaResumoCaixasNew.jasper";InputStreamrelJasper=getClass().getResourceAsStream(caminhoRelJasper);JRBeanCollectionDataSourceds=newJRBeanCollectionDataSource(listaEstimativas);JasperPrintimpressao=JasperFillManager.fillReport(relJasper,parametros,ds);/* * JasperViewer viewer = new JasperViewer(impressao, false); * viewer.setVisible(true); * viewer.show(); */OutputStreamoutput=newFileOutputStream(newFile(caminhoDestinoPDF));ByteArrayOutputStreamxlsReport=newByteArrayOutputStream();bytebytes[]=newbyte[10];// exportação para excelJRXlsExporterexporterXLS=newJRXlsExporter();exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT,impressao);exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM,xlsReport);exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_FILE,caminhoDestinoPDF);exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.TRUE);exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);exporterXLS.exportReport();// converte para bytesbytes=xlsReport.toByteArray();xlsReport.close();// grava os bytes na saídaoutput.write(bytes,0,bytes.length);output.flush();output.close();
OBS.: os três últimos parâmetros (IS_ONE_PAGE_PER_SHEET, IS_WHITE_PAGE_BACKGROUND e IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS) são opcionais dependendo do relatório desenvolvido.
OBS.: tenha configurado no CLASSPATH a API Apache POI.
Marques
Prezado ze_kiefa,
Sem querer abusar da tua boa vontade:
Vc pode enviar também um exemplo mandando o pdf para o browser?
Muito obrigado,
Marques
ze_kiefa
Eu trabalho com aplicações WEB (não sei se é o seu caso).
O mecanismo a parte que eu citei é um Servlet que utiliza o código acima para gerar o arquivo e, em seguida, direciona para uma página JSP (pode ser HTML), a qual abre o arquivo no browser (ex.: abro um popup ou crio um link para o arquivo).
A abertura do arquivo também pode ser feita diretamente no Servlet, através das classes de IO do Java.
/* a classe Realtorio contém o métodos responsável por gerar o relatório, conforme o código do post anterior */Relatoriorel=newRelatorio();/* tipo do relatório */inttipoRelatorio=Integer.parseInt(request.getParameter("TIPO_RELATORIO"));/* parâmetros do relatório */Mapparametros=newHashMap();parametros.put("PARAM1",request.getParameter("param1"));parametros.put("PARAM2",request.getParameter("param2"));/* geração do relatório */rel.geraRelatorio(parametros,"arquivoJasper","caminhoDestino",tipoRelatorio);/* direciona para uma página que abrirá o arquivo PDF */request.getRequestDispatcher("/relatorios/abreDiretorio.jsp").forward(request,response);
Espero ter ajudado.
R
rickab7
vcs poderiam me disponibilizar o codigo da aplicação para min enteder?!
Marcos_Perboni
Preciso de uma ajuda, sou desenvolvedor java junior e estou tentando transformar um arquivo de excel em pdf. tipo assim:
tenho um sistema que gera um relatorio em excel e eu preciso pegar esse excel e transformar ele em PDF. Alguém poderia me dar uma ajuda por favor?