Vídeo Aula: Seam Extras - Gerando PDF

Java, Java EE, Java Server Faces, Jboss Seam, Vídeo Aulas 4 Comments »

Foi publicada no portal Java Magazine a parte 5ª da série de vídeo aulas sobre os extras Seam Framework.

Esta parte mostra um passo-a-passo para criar documentos em PDF usando o módulo de integração do Seam Framework com o iText. Na vídeo aula, são apresentadas algumas das tags descritas na publicação Gere PDF de Qualidade em 10 minutos, o documento resultante gera um PDF que contém imagens, títulos, texto HTML formatado e um rodapé contendo texto e numeração.

As próximas vídeo aulas abordarão o envio de e-mails, CAPTCHA e agendamento de tarefas. :)

Arquivos Fontes
Vídeo aula

Gere PDF de qualidade em 10 minutos

Java, Java EE, Java Server Faces, Jboss Seam 8 Comments »

O Seam Framework tem um grande leque de extras, na minha opinião é onde o Seam mais se destaca. Possui integração com Hibernate, Spring, Groovy, EJB, GWT, Quartz, Java Mail e por aí vai! Bom hoje vou falar um pouco do suporte do seam para integração do iText.

Basicamente para usar em um projeto Seam, basta adicionar a lib do itext e a lib de intregração jboss-seam.jar. Feito isto, basta criar páginas xhtml que use as tags de geração de arquivos PDF. Uma das opções que mais me chamaram a atenção foi a possibilidade de adicionar código html, algo que estava procurando para impressão de campos que usam o formato RichText. Outra coisa que me chamou a atenção foi a velocidade, um mesmo PDF que era gerado usando iReports levou um bom tempo a mais do que o gerando usando o Seam. As opções básicas como cabeçalho, rodapé e quebra de página estão presentes.

Tudo que é preciso fazer é criar uma página xhtml usando a tag p:document com o namespace http://jboss.com/products/seam/pdf:


<p :document xmlns:p="http://jboss.com/products/seam/pdf">
  <!-- Coloque aqui o conteúdo do documento -->
</p>

A tag de paragraph permite a criação de parágrafos de forma semelhante ao um documento HTML, para exibir um dado de uma EL JSF há três maneiras básicas: Colocar a EL direto no texto, usar o componente JSF padrão h:outputText ou ainda usar o componente do Seam p:text. Veja o exemplo:


<p :paragraph>
    Olá #{user.name}, você foi registrado com sucesso, seu login é <h :outputText value="#{user.login}" /> e seu último acesso foi em: </p><p :text value="#{user.lastAcess}">
        <f :convertDateTime pattern="dd/MM/yyyy HH:mm" />
    </p>

E não podia deixar de destacar, também deixar de destacar a habilidade do Seam de renderizar código HTML através da tag p:html:


<p :html>
    <h1>Título 1 em html</h1>
    <table>
        <th>
              <td>Título 1</td>
              <td>Título 2</td>
        </th>
        <tr>
              <td>Linha 1</td>
              <td>Linha 1</td>
        </tr>
        <tr>
              <td>linha 2</td>
              <td>Linha 2</td>
        </tr>
    </table>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</p>

Caso se interesse pelo assunto, sugiro acessar o Guia de Referência.

WP Theme & Icons by N.Design Studio
Assine Assine os comentarios