Converter HTML To PDF - (Django - PyFPDF - xHtml2pdf )

879 views
Skip to first unread message

Eduardo Padilha

unread,
Feb 7, 2018, 4:09:40 PM2/7/18
to Python Brasil
Olá Pessoal! 

Sou novo na comunidade, e já tenho uma dúvida para postar espero que alguém possa ajudar-me!.  Tenho a tarefa de converter e substituir {{ variaveis }} de arquivos HTML e salva-lo em PDF utilizando python. Depois algumas pesquisas e tentativas deparei-me com essas três bibliotecas (Django, Fpdf e xHtml2pdf ) , cada uma com sua particularidade e estas para a minha necessidade que é (Substituir (variáveis) + Converter(PDF) + Salvas(Arquivo físico) ) esbarrei-me com certas limitações vejamos:

Django — Pelo que entendi e testei ele renderiza o HTML com as substituições entrando no browser e preciso do “start http:”. Na verdade preciso só salvar um arquivo PDF.

(Fpdf+ PyFPDF) — Este maravilha (Fpdf), substitui as variáveis, entretanto quando vou gerar o arquivo físico utilizei o PyFPDF, este por sua vez tem limitações com TAGs HTML como por exemplo { style align=”” } entre outras ... a documentação explica bem as Tags suportadas por ele.

xHtml2pdf — Este consegue substituir as variáveis, suporta as Tags HTML 4 e gera o arquivo físico PDF em perfeito estado, mas ....... é preciso instalar o GTK pelo menos para o meu ambiente “Windows”, senão não rola erro nas bibliotecas por causa de CSS e HTML.

Então pergunto! A minha necessidade é simplesmente converter um arquivo HTML (com substituição) e salva-lo fisicamente o arquivo no formato de PDF, alguém já teve a experiência com alguma dessas citadas ou recomenda alguma outra biblioteca?

Obrigado!

Maxwell Morais

unread,
Feb 7, 2018, 8:32:04 PM2/7/18
to python-brasil
@Eduardo, eu tenho tido uma boa experiencia com jinja2 para templates e wkhtml2pdf e pdfkit, para converter o html para o pdf.





--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/3812aa41-ef6b-4eeb-a7eb-21ca0e506d84%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Best Regards.

Maxwell Morais
Python Developer powered by Webnotes framework <3

Eduardo Padilha

unread,
Feb 8, 2018, 7:29:53 AM2/8/18
to Python Brasil
Obrigado, Maxwell! Vou tentar nessa linha então.

Abraços

Fred Chevitarese

unread,
Feb 8, 2018, 9:30:10 AM2/8/18
to python-brasil
Opa! 
Sempre que eu preciso fazer isto eu renderizo o template usando o django e transformo em pdf utilizando o WeasyPrint


Aqui tem um exemplo ;) 


Vlw



"
São os homens que mais me surpreendem na humanidade. Porque perdem a saúde para juntar dinheiro, depois perdem dinheiro para recuperar a saúde. E por pensarem ansiosamente no futuro, esquecem do presente de tal forma que acabam por não viver nem o presente nem o futuro. E vivem como se nunca fossem morrer e morrem como se nunca tivessem vivido” - Dalai Lama.
"

Fred Chevitarese - GNU/Linux



Em 8 de fevereiro de 2018 10:29, Eduardo Padilha <eduardo...@gmail.com> escreveu:
Obrigado, Maxwell! Vou tentar nessa linha então.

Abraços
--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
    python-brasil+unsubscribe@googlegroups.com
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para postar neste grupo, envie um e-mail para python...@googlegroups.com.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/python-brasil/67352cee-5658-473f-bfb3-f75ba33ced98%40googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages