Olá,
Aqui no guj tem um ótimo exemplo de como usar o iReport. Mas ele gera um arquivo PDF, que tem que ser aberto pelo usuário. Como gerar outros tipos de relatórios ( dentro de um frame, por exemplo ) ? Após gerar um pdf, como o próprio programa pode abrir o pdf gerado ?
Procurei a API do iReport mas não achei.
Obrigado,
Márcio
raguiar
Novembro 4, 2004, 8:06pm
#2
Nao sei sei é exatamente isso que vc está querendo, mas eu mostro o PDF da seguinte maneira:
//p_nomeRelat -> Contem o nome do arquivo .jasper gerado pelo iReport
public void geraPdfBrowser(HttpServletRequest request,HttpServletResponse response,
String p_nomeRelat, ResultSet p_rs)
throws ServletException, IOException {
ServletContext context = this.getServletConfig().getServletContext();
parameters.put("p_logo",context.getRealPath("/WEB-INF/lib/logo.gif"));
JRResultSetDataSource jrRS = new JRResultSetDataSource( p_rs );
byte[] bytes = null;
try {
JasperReport relatorio = JasperManager.loadReport(context.getRealPath("/WEB-INF/lib/" + p_nomeRelat));
bytes = JasperRunManager.runReportToPdf(relatorio, parameters, jrRS);
}
catch (Exception e) {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Erro: " + e.getMessage());
out.close();
}
//AQUI EU PEGO O PDF GERADO PELO JASPER E FACO A EXIBICAO
// DO MESMO
if (bytes != null && bytes.length > 0) {
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}else {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Sem dados para impressao");
out.close();
}
}
Ricardo,
Obrigado, mas estou utilizando Swing
JRExporter exporter = new JRPdfExporter();
JasperPrint print;
OutputStream fos = null;
List beans = new ArrayList();
// Formulario umFormulario = new Formulario("formulario0000003072004.txt");
CapaDeFormulario capa = new CapaDeFormulario();
capa.setPeriodo("07/2004");
capa.setNomeDoPrestador("Márcio Aun Migueis");
beans.add(capa);
JRDataSource jrds = new JRBeanArrayDataSource(beans.toArray());
try{
print = JasperFillManager.fillReport("C:/DIXAMICO/Relatorios/Capa",null,jrds);
fos = new FileOutputStream("c:/temp/saida.pdf");
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,fos);
exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);
exporter.exportReport();
fos.close();
Preciso de uma alternativa ao JRExporter exporter = new JRPdfExporter();
Obrigado,
Márcio