Salvar HTML como PDF em Python

Manav Narula 30 janeiro 2023
  1. Use a API wkhtmltopdf com Pdfkit para salvar HTML como PDF usando Python
  2. Use o módulo weasyprint para salvar HTML como PDF usando Python
  3. Use o módulo PyQT para salvar HTML como PDF usando Python
Salvar HTML como PDF em Python

HTML é a linguagem mais básica e popular para desenvolvimento web. Ele formou a base para muitos idiomas. Python tem suporte para criar conexões e trabalhar com sites.

Um PDF é um documento portátil que pode ser visualizado em diferentes dispositivos e é independente do software usado para criá-lo.

Neste tutorial, salvaremos uma página da web em HTML como PDF usando Python.

Use a API wkhtmltopdf com Pdfkit para salvar HTML como PDF usando Python

O wkhtmltopdf é um conjunto de ferramentas de código aberto que pode converter uma página da web HTML em PDF. Usamos o módulo pdfkit para trabalhar com isso em Python. As funções deste módulo podem funcionar em uma ou várias páginas da web e salvá-las como um arquivo PDF.

Podemos ler o conteúdo diretamente do URL da página da Web ou de um arquivo HTML salvo no dispositivo. A função from_url () lê o conteúdo de uma URL, e a função from_file () lê de um arquivo.

O nome e o caminho do arquivo podem ser especificados na função.

Veja o código a seguir para ver seu uso

import pdfkit

pdfkit.from_url("https://www.delftstack.com/", "sample.pdf")

Também podemos armazenar esse conteúdo em uma variável mencionando False na função em vez do nome do PDF.

Lembre-se de instalar o wkhtmltopdf de seu site oficial antes de usar este método.

Use o módulo weasyprint para salvar HTML como PDF usando Python

O módulo weasyprint é usado para renderizar páginas da web em formatos de documento. Usamos a função HTML para ler o URL e salvá-lo como PDF usando a função write_pdf ().

Por exemplo,

import weasyprint

doc_pdf = weasyprint.HTML("https://www.delftstack.com/").write_pdf("sample.pdf")

Muitos outros módulos e funcionalidades precisam ser instalados antes de usar o weasyprint, por isso é recomendado não usá-lo.
Além disso, o Python 2 removeu o suporte para este módulo.

Use o módulo PyQT para salvar HTML como PDF usando Python

O módulo PyQT possui uma vasta gama de funcionalidades para desenvolvimento de GUI e outros recursos. Podemos ler manualmente o URL de uma página da Web em HTML e convertê-lo em PDF usando diferentes funções.

Veja o seguinte código.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
w = QWebView()
w.load(QUrl("https://www.delftstack.com"))
p = Qp()
p.setPageSize(Qp.A4)
p.setOutputFormat(Qp.PdfFormat)
p.setOutputFileName("sample.pdf")


def convertIt():
    w.print_(p)
    QApplication.exit()


QObject.connect(w, SIGNAL("loadFinished(bool)"), convertIt)
sys.exit(app.exec_())
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn