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.
July 1st, 2008 at 2:56 pm
Valeu pela dica, estou precisando justamente disso, escrever código html em um PDF no JBoss Seam não sabia desse recurso, essa tag <p :html é a partir de qual versão do JBoss Seam? 2.0?
Abraços.
July 1st, 2008 at 5:35 pm
Sim,
Este recurso é muito bom, algum tempo atrás eu tive um problema relacionado a este e a solução foi fazer uma classe que convertia HTML em conteúdos iText. Eu não tenho certeza mas acho que é a partir da versão 2.0.2.
July 31st, 2008 at 10:11 am
[...] 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 [...]