Convertendo PDF para diversos formatos...

11 views
Skip to first unread message

Rafael Ponte

unread,
Nov 21, 2016, 6:13:19 AM11/21/16
to javace, ce...@googlegroups.com
opa pessoal,

acabei de ler esse artigo escrito pelo famoso Baeldung e achei muito útil, pois não é raro termos que fazer algo do tipo em nossas apps corporativas. Quem nunca precisou converter um HTML para PDF, né?


vale a pena a leitura ao menos para conhecer as possibilidades.

um abraço,
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

Gabriel Feitosa

unread,
Nov 21, 2016, 6:23:32 AM11/21/16
to javace, ce...@googlegroups.com
Fala Ponte,

  só acrescentando mais uma coisinha, eu tive problema de performance quando tentei gerar um pdf de um html grande (uma tabela com mais de 30000 linhas). Por alguma razão, que não consegui identificar, ao gerar o pdf a memória não era desalocada. 

Eu estava usando o XMLWorkerHelper, igual a implementação do tutorial.

Minha solução foi trocar toda a engine de gerar pdf para o Dynamic Jasper

Abraço

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para jav...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javace.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Gabriel Feitosa
Blog: gabrielfeitosa.com
Github: github.com/gabrielfeitosa

Rafael Ponte

unread,
Nov 21, 2016, 6:31:59 AM11/21/16
to javace, ce...@googlegroups.com
Oi Gabriel,

Pelo pouco que li, o XMLWorkerHelper e demais classes constroem a estrutura da página em memória, semelhante ao que o browser faz com uma árvore DOM. Logo se o documento for muito grande você terá problema. Nesses casos o melhor são os parsers que usam o modelo Push, na qual processam tag a tag disparando eventos para o desenvolvedor trabalhar no momento oportuno. Talvez eles tenham alguma implementação de parser para isso.

No mais, não desalocar memória é bem estranho mesmo.

Um abraço,

On Mon, Nov 21, 2016 at 8:23 AM Gabriel Feitosa <gabfe...@gmail.com> wrote:
Fala Ponte,

  só acrescentando mais uma coisinha, eu tive problema de performance quando tentei gerar um pdf de um html grande (uma tabela com mais de 30000 linhas). Por alguma razão, que não consegui identificar, ao gerar o pdf a memória não era desalocada. 

Eu estava usando o XMLWorkerHelper, igual a implementação do tutorial.

Minha solução foi trocar toda a engine de gerar pdf para o Dynamic Jasper

Abraço

Em 21 de novembro de 2016 09:12, Rafael Ponte <rpo...@gmail.com> escreveu:
opa pessoal,

acabei de ler esse artigo escrito pelo famoso Baeldung e achei muito útil, pois não é raro termos que fazer algo do tipo em nossas apps corporativas. Quem nunca precisou converter um HTML para PDF, né?


vale a pena a leitura ao menos para conhecer as possibilidades.

um abraço,
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+un...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para jav...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javace.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Gabriel Feitosa
Blog: gabrielfeitosa.com
Github: github.com/gabrielfeitosa

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+un...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para jav...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javace.
Para mais opções, acesse https://groups.google.com/d/optout.
--

Gabriel Feitosa

unread,
Nov 21, 2016, 6:44:37 AM11/21/16
to CEJUG, javace
Exato, todo o processo é feito na memória. Na época cheguei ir nas entranhas do código, mas não identifiquei nada anormal e nem consegui chegar a uma conclusão habilitando o JMX.

Como eu precisava criar relatórios gigantes, removi a engine de template (no começo Apache Velocity e depois FreeMarker) e a de transformar o html em pdf com iText para o Dynamic Jasper.



Em 21 de novembro de 2016 09:31, Rafael Ponte <rpo...@gmail.com> escreveu:
Oi Gabriel,

Pelo pouco que li, o XMLWorkerHelper e demais classes constroem a estrutura da página em memória, semelhante ao que o browser faz com uma árvore DOM. Logo se o documento for muito grande você terá problema. Nesses casos o melhor são os parsers que usam o modelo Push, na qual processam tag a tag disparando eventos para o desenvolvedor trabalhar no momento oportuno. Talvez eles tenham alguma implementação de parser para isso.

No mais, não desalocar memória é bem estranho mesmo.

Um abraço,
On Mon, Nov 21, 2016 at 8:23 AM Gabriel Feitosa <gabfe...@gmail.com> wrote:
Fala Ponte,

  só acrescentando mais uma coisinha, eu tive problema de performance quando tentei gerar um pdf de um html grande (uma tabela com mais de 30000 linhas). Por alguma razão, que não consegui identificar, ao gerar o pdf a memória não era desalocada. 

Eu estava usando o XMLWorkerHelper, igual a implementação do tutorial.

Minha solução foi trocar toda a engine de gerar pdf para o Dynamic Jasper

Abraço

Em 21 de novembro de 2016 09:12, Rafael Ponte <rpo...@gmail.com> escreveu:
opa pessoal,

acabei de ler esse artigo escrito pelo famoso Baeldung e achei muito útil, pois não é raro termos que fazer algo do tipo em nossas apps corporativas. Quem nunca precisou converter um HTML para PDF, né?


vale a pena a leitura ao menos para conhecer as possibilidades.

um abraço,
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para jav...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javace.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Gabriel Feitosa
Blog: gabrielfeitosa.com
Github: github.com/gabrielfeitosa

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para jav...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javace.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+unsubscribe@googlegroups.com.
---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.

Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages