Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Gere PDF de qualidade em 10 minutos

Marcos Sousa | July 1, 2008

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 :o utputText 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.

Comments
11 Comments »
Categories
Java, Java EE, Java Server Faces, Jboss Seam
Tags
Itext, Jboss Seam, jboss-seam-itext, JSF, PDF, Seam Framework, Seam PDF
Comments rss Comments rss
Trackback Trackback

Núvens de tags

Agile Agile Conference Facelets GET Hibernate incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

  • @acarlos1000 This site should help you: http://www.mandarintools.com/numbers.html ;) 3 days ago
  • My new toys. Now I have cool things to read. #epicwin http://yfrog.com/mwub1zj 1 week ago
  • rs RT @gisahcorrea: geralmente, acho que estar na TPM é um saco. mas daí eu olho pro tamanho que meus peitos ficam e penso "é, vale a pena." 2 weeks ago
  • Bom livro grátis escrito por quem fez o Prawn e o Ruport, para quem já sabe Ruby http://rubybestpractices.com/ (via @lucabastos) 2 weeks ago
  • Parabéns!!! RT @rodrigoy: Aha... just bought http://kanbansket.ch domain! #KanbanSketch #ProjetoAgileBrazil #Switzerland 2 weeks ago
  • @pac_man Parabéns pelo projeto, o delay é muito pequeno! Menor que o da NET! 2 weeks ago
  • Algumas fotos do mini-curso de rails ontem na Una http://tinyurl.com/25vjen4 #railsuna 2 weeks ago
  • @danielvlopes Desenvolver em rails o ajuda a se tornar um desenvolvedor melhor #railsuna http://yfrog.com/3mafappj 2 weeks ago
  • ;) @joaovitor Pegadinha do malandro em Ruby http://gist.github.com/470707 #railsuna se alguém escrever algo assim na sua equipe dá um pedala 2 weeks ago
  • Django 1.2 template application for appengine: http://tinyurl.com/36nuqzz 2 weeks ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox