Renderizar saida do JSF para PDF

1,208 views
Skip to first unread message

Edilmar Alves

unread,
May 28, 2010, 5:08:44 PM5/28/10
to jug...@googlegroups.com
Ola,

Estou querendo fazer o seguinte: ao usuario processar determinada
pagina, ter 2 opcoes de visualizacao, Tela ou PDF. Se for Tela, gera o
JSF normal que tem hoje; caso contrario, gostaria de chamar algum
utilitario que conseguisse capturar a saida do JSF e nao mandar
diretamente para o navegador e sim redirecionar para um filtro que
entendesse o JSF e transformasse em PDF antes de devolver para o navegador.

Eu achei o XHTMLRenderer (vulgo FlySaucer) mas pelo que entendi dele, �
usado em aplicacoes Swing para renderizar algum link de internet que
retorne um JSF em um browser interno dele.

--
sds,
Edilmar Alves
Analista de Sistemas
InterSite Inform�tica Ltda
www.intersite.com.br
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Use Linux/Java!!!
Use um navegador de verdade... Mozilla/Firefox!
e um cliente de e-mail decente... Mozilla/Thunderbird!
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

Gilliard Cordeiro

unread,
May 31, 2010, 10:04:23 AM5/31/10
to jug...@googlegroups.com
Edilmer, uma opção é o uso de algum componente como http://www.primefaces.org:8080/prime-showcase/ui/exporterHome.jsf
Agora para algo mais genérico você pode usar esse que citou mesmo.
http://lobometal.wordpress.com/2009/09/13/xhtmlrenderer-html-to-pdf/

Testei faz muito tempo, mas pelo que me recordo não tem nenhuma limitação quanto a ser web ou desktop. Se não me engano é um servlet filter que faz exatamente como você comentou.... pega o output gerado (nesse caso via jsf) e em vez de devolver direto gera o pdf e aí sim manda pro usuário.

2010/5/28 Edilmar Alves <edilma...@intersite.com.br>
Ola,

Estou querendo fazer o seguinte: ao usuario processar determinada pagina, ter 2 opcoes de visualizacao, Tela ou PDF. Se for Tela, gera o JSF normal que tem hoje; caso contrario, gostaria de chamar algum utilitario que conseguisse capturar a saida do JSF e nao mandar diretamente para o navegador e sim redirecionar para um filtro que entendesse o JSF e transformasse em PDF antes de devolver para o navegador.

Eu achei o XHTMLRenderer (vulgo FlySaucer) mas pelo que entendi dele, é usado em aplicacoes Swing para renderizar algum link de internet que retorne um JSF em um browser interno dele.


--
sds,
Edilmar Alves
Analista de Sistemas
InterSite Informática Ltda

www.intersite.com.br
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Use Linux/Java!!!
Use um navegador de verdade... Mozilla/Firefox!
e um cliente de e-mail decente... Mozilla/Thunderbird!
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

--
Você está recebendo esta mensagem porque se inscreveu no grupo "JUG-MS" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jug...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para jug-ms+un...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/jug-ms?hl=pt-BR.




--
Gilliard Cordeiro
http://gilliard.eti.br

Edilmar Alves

unread,
May 31, 2010, 1:59:06 PM5/31/10
to jug...@googlegroups.com
Eu vi o exemplo onde é montado um HTML na mao e depois exportado para PDF com o XHTMLRenderer. Contudo, nao estou conseguindo escrever o servlet filter, que seria chamado apos o JSF ter processado a pagina de retorno, para que eu pudesse pegar o stream da pagina inteira e fazer a conversao para PDF.

Gilliard Cordeiro

unread,
May 31, 2010, 3:44:17 PM5/31/10
to jug...@googlegroups.com
Agora não vou ter o exemplo e nem lembrar certinho onde achei pois faz tempo. Mas lembro que dá pra fazer isso sim. O meu problema era diferente: eu queria exportar somente os dados de uma dataTable e não dá página toda como você está querendo. Para a página toda o xhtmlrenderer funciona. Só não tenho mais o código dos testes que fiz. Baixando ele não vem com exemplo?

2010/5/31 Edilmar Alves <edilma...@intersite.com.br>

Edilmar Alves

unread,
May 31, 2010, 4:06:37 PM5/31/10
to jug...@googlegroups.com
O exemplo que achei usa servlet puro, entao fica bem mais facil capturar a saida.
Reply all
Reply to author
Forward
0 new messages