Guardar HTML como PDF en Python

Manav Narula 30 enero 2023
  1. Utilice la API wkhtmltopdf con Pdfkit para guardar HTML como PDF utilizando Python
  2. Utilice el módulo weasyprint para guardar HTML como PDF usando Python
  3. Utilice el módulo PyQT para guardar HTML como PDF usando Python
Guardar HTML como PDF en Python

HTML es el lenguaje más básico y popular para el desarrollo web. Ha formado la base de muchos idiomas. Python tiene soporte para crear conexiones y trabajar con sitios web.

Un PDF es un documento portátil que se puede ver en diferentes dispositivos y es independiente del software utilizado para crearlo.

En este tutorial, guardaremos una página web HTML como PDF usando Python.

Utilice la API wkhtmltopdf con Pdfkit para guardar HTML como PDF utilizando Python

El wkhtmltopdf es un conjunto de herramientas de código abierto que puede convertir una página web HTML en un PDF. Usamos el módulo pdfkit para trabajar con esto en Python. Las funciones de este módulo pueden funcionar en una o varias páginas web y guardarlas como un archivo PDF.

Podemos leer el contenido directamente desde la URL de la página web o un archivo HTML guardado en el dispositivo. La función from_url () lee el contenido de una URL y la función from_file () lee un archivo.

El nombre y la ruta del archivo se pueden especificar dentro de la función.

Consulte el siguiente código para ver su uso.

import pdfkit

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

También podemos almacenar este contenido en una variable mencionando False en la función en lugar del nombre del PDF.

Recuerde instalar wkhtmltopdf desde su sitio web oficial antes de usar este método.

Utilice el módulo weasyprint para guardar HTML como PDF usando Python

El módulo weasyprint se utiliza para convertir páginas web en formatos de documento. Usamos la función HTML para leer la URL y guardarla como PDF usando la función write_pdf ().

Por ejemplo,

import weasyprint

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

Es necesario instalar muchos otros módulos y funcionalidades antes de usar weasyprint, por lo que se recomienda no usarlo.
Además, Python 2 ha eliminado la compatibilidad con este módulo.

Utilice el módulo PyQT para guardar HTML como PDF usando Python

El módulo PyQT tiene una amplia gama de funcionalidades para el desarrollo de GUI y otras características. Podemos leer manualmente la URL de una página web HTML y convertirla en PDF utilizando diferentes funciones.

Consulte el siguiente 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