iReport

1 resposta
F

Amigos,
Estou com um problema, tento exibir um relatório em PDF com o código abaixo. O mais interessante é que o código funciona perfeitamente na minha máquina, no meu trabalho quando tento exibir o relatório no firefox aparece tudo embaralhado como se não tivesse entendendo para exibir com o ContentType = application/pdf. Alguém já passou por isso ? Acredito que seja alguma configuração do Browser ???

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        ServletOutputStream servletOutputStream = response.getOutputStream();
        InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("/WEB-INF/relatorios/foi.jasper");
        try{
            Connection con = getConnection(); 
            JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, null, con);
            response.setContentType("application/pdf");
            servletOutputStream.flush();
            servletOutputStream.close(); 
        }catch(JRException ex){
            ex.printStackTrace();
        }
    }

1 Resposta

F

:smiley: Fala pessoal resolvi o problema com o seguinte código:

Connection con = getConnection(); 
             HashMap parameters = new HashMap();  
             // lendo arquivo jasper  
             File reportFile = new File(getServletConfig().getServletContext().getRealPath("/WEB-INF")+"/relatorios/foi.jasper");    
             byte[] bytes = null;  
             try { 
                JasperPrint print = JasperFillManager.fillReport(reportFile.getPath(), parameters, con);     
                bytes = JasperExportManager.exportReportToPdf(print);                  
                //JasperViewer.viewReport(print, false);     
             } catch (JRException e) {  
                 e.printStackTrace();  
                 return;  
             }                                
               
             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();  
             }

Valeu !!!

Criado 8 de maio de 2008
Ultima resposta 12 de mai. de 2008
Respostas 1
Participantes 1