PDF Com o Python

31 views
Skip to first unread message

Kaique Afonso

unread,
Sep 23, 2021, 9:53:48 AM9/23/21
to python...@googlegroups.com
Bom dia pessoal! Eu conheci a lib reportlab que me permite construir arquivos PDF com o python, no entanto a forma para a construção é um pouco sádica, porque para cada linha do texto devo informar as coordenadas X e Y, eu preciso construir um texto de três páginas. E fazendo desta forma consome muito tempo. Existe alguma outra LIB/Biblioteca do Python que me permita eu enviar o texto completo, preencher alguns parâmetros e construir automaticamente?

--
Kaique Afonso Ferreira do Rosário
Deus, Pátria e Família
Santo Antônio de Jesus (BA) - 44440-822
(75) 98172-9111 Oi  Kaique

Fabio C. Barrionuevo da Luz

unread,
Sep 23, 2021, 10:09:16 AM9/23/21
to python...@googlegroups.com
Olá Kaique, dá uma olhada no Weasyprint e veja se ele te ajuda a resolver esse problema.

https://github.com/Kozea/WeasyPrint

Documentação: https://doc.courtbouillon.org/weasyprint/stable/

Exemplos: https://weasyprint.org/#samples



--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/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-brasi...@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-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CAEH6kV2gsZ-uyXDdwaCnurHmXAqrRNHL540FBp2zkksMt%2BJzTw%40mail.gmail.com.


--
Fábio C. Barrionuevo da Luz
Palmas - Tocantins - Brasil - América do Sul


Blog colaborativo sobre Python e tecnologias Relacionadas, mantido totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e mandar o pull-request. Leia mais sobre como publicar em README.md e contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python ou é útil para quem usa Python? Está esperando o que? Publica logo, que estou louco para ler...

Kaique Afonso

unread,
Sep 23, 2021, 10:22:46 AM9/23/21
to python...@googlegroups.com
Olá Fábio, eu dei uma lida sobre essa LIB e pelo que eu vi ela transforma páginas HTML em PDF, essa LIB também conseguiria transformar em PDF um texto que eu fiz? Você tem afinidade com esta lib? Poderia entrar em contato comigo?

Fabio C. Barrionuevo da Luz

unread,
Sep 23, 2021, 10:58:59 AM9/23/21
to python...@googlegroups.com
Nunca usei Weasyprint, mas ele me pareceu uma boa alternativa ao wkhtmltopdf (que usei bastante, funciona mas tem muitos problemas).

Dito isto, se usar junto com Django tem o https://github.com/fdemmer/django-weasyprint



Joao S. O. Bueno

unread,
Sep 23, 2021, 12:33:37 PM9/23/21
to python...@googlegroups.com
On Thu, 23 Sept 2021 at 10:53, Kaique Afonso <kaiqueafons...@gmail.com> wrote:
Bom dia pessoal! Eu conheci a lib reportlab que me permite construir arquivos PDF com o python, no entanto a forma para a construção é um pouco sádica, porque para cada linha do texto devo informar as coordenadas X e Y, eu preciso construir um texto de três páginas. E fazendo desta forma consome muito tempo. Existe alguma outra LIB/Biblioteca do Python que me permita eu enviar o texto completo, preencher alguns parâmetros e construir automaticamente?



Sim - tem - o própŕio reportlab, mas  usando outras funcionalidades dele, não
uma única chamada de saída de texto em que você passa o x e y.

ainda não é "0" trabalho: você precisa descrever os templates de páragrafo e de página,
mas depois disso é só jogar o texto todo lá dentro.

Veja o capítulo 5 do manual do reportlab - https://www.reportlab.com/docs/reportlab-userguide.pdf
--
Kaique Afonso Ferreira do Rosário
Deus, Pátria e Família
Santo Antônio de Jesus (BA) - 44440-822
(75) 98172-9111 Oi  Kaique

Robson Antonio Lima de Mendonça

unread,
Sep 23, 2021, 2:55:49 PM9/23/21
to python...@googlegroups.com
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://www.yahoo.com"))
printer = QPrinter()
printer.setPageSize(QPrinter.A4)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName("fileOK.pdf")

def convertIt():
    web.print_(printer)
    print("Pdf generated")
    QApplication.exit()

QObject.connect(web, SIGNAL("loadFinished(bool)"), convertIt)
sys.exit(app.exec_())
Atenciosamente,
Robson Mendonça 
Analista Programador Web 
Celular: +55 11 9.7392-9903 
rob...@gmail.com 
about.me/robsonamendonca


Flávyo Henrique

unread,
Sep 23, 2021, 10:07:40 PM9/23/21
to 'Sergio Garcia' via Python Brasil
O Weasyprint me salva muitas vezes que eu preciso gerar um PDF, as vezes da problema na instalação por causa das dependências, então tenha atenção nisso, no mais, você só precisa gerar um HTML válido que ele transforma em PDF, podendo usar CSS para estilizar a página, recursos do html como fonts externas. 

Você consegue também passar um texto simples e fazer ele gerar o PDF, mais vai ficar meio feio, recomendo criar um HTML com o texto arrumadinho e mandar ver.

Se estiver usando o Django pode usar o render do django (o mesmo que o django template usa) para gerar HTML dinâmico, senão, pode usar o JINJA que é muito bom também.



--

Não tentes ser bem sucedido, tenta antes ser um homem de valor.

Albert Einstein

Sinval Júnior

unread,
Sep 23, 2021, 10:10:34 PM9/23/21
to python...@googlegroups.com
Basts vc colocar seu texto em um html

Reply all
Reply to author
Forward
0 new messages