Como gerar relatório PDF em JSF 2.0

7 respostas
T

Alguem poderia me dar uma luz sobre como gero um relatório PDF em JSF?

Vi tutoriais usando IReport e talz, e neles mostram exemplos de geraçao a partir de uma tabela no banco de dados e talz…
Mas o que eu queria fazer é:

O cliente seleciona uns parametros para consulta, minha aplicaçao faz diversas consultas e gera uma página para ele visualizar o que tinha pedido.
O que quero é pegar essa página, transforma-la em PDF e permitir que o cliente baixe em seu computador.

Se alguem puder ajudar eu agradeço.

Abraço.

7 Respostas

F

Olá

Se você quer apenas gerar um PDF use o iText - http://itextpdf.com/
Fácil de usar

J

alguém tem fontes ai ?

F

Aqui na na empresa fiz um Servlet, q recebe as requisicoes, processa, gera o relatorio e exibe no navegador em formato PDF.

O BackEnd monta os dados do relatorio e o Jasper somente exibe.

J

pode mostrar os fontes ?

F

A implementacao eh grande.
Qual eh sua duvida ?

J

feltraco !

Em Vraptor eu faço assim :

private Connection getConexao() throws SQLException, ClassNotFoundException{
           Connection con = null;
           try{
               Class.forName("org.postgresql.Driver");
               String url = "jdbc:postgresql://localhost:5432/nutec";
               String usuario = "root";
               String senha = "debian23";
               con = (Connection) DriverManager.getConnection(url,usuario,senha);
           }catch(SQLException sql){
               System.out.println("erro ao conectar");
                sql.printStackTrace();
           }
           return con;
       }

    public InputStreamDownload relAlunos(String turma) throws JRException, SQLException, ClassNotFoundException {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/catequese/relatorio/relAlunos.jasper");
        Map parametros = new HashMap();
        parametros.put("turma", turma);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioAlunos.pdf", true, os.toByteArray().length);
    }

Abro uma conecção e o inpultStreamdownload..

em JSF não tenho ideia como faz!

J

poderia mandar para [email removido]

Obrigado
Junior !

Criado 21 de junho de 2010
Ultima resposta 7 de dez. de 2010
Respostas 7
Participantes 4