Enregistrer le HTML au format PDF en Python

Manav Narula 30 janvier 2023
  1. Utilisez l’API wkhtmltopdf avec Pdfkit pour enregistrer du HTML au format PDF à l’aide de Python
  2. Utilisez le module weasyprint pour enregistrer du HTML au format PDF à l’aide de Python
  3. Utilisez le module PyQT pour enregistrer du HTML au format PDF à l’aide de Python
Enregistrer le HTML au format PDF en Python

HTML est le langage le plus basique et le plus populaire pour le développement Web. Il a formé la base de nombreuses langues. Python prend en charge la création de connexions et le travail avec des sites Web.

Un PDF est un document portable qui peut être visualisé sur différents appareils et est indépendant du logiciel utilisé pour le créer.

Dans ce didacticiel, nous allons enregistrer une page Web HTML au format PDF à l’aide de Python.

Utilisez l’API wkhtmltopdf avec Pdfkit pour enregistrer du HTML au format PDF à l’aide de Python

Le wkhtmltopdf est un ensemble d’outils open source qui peut convertir une page Web HTML en PDF. Nous utilisons le module pdfkit pour travailler avec cela en Python. Les fonctions de ce module peuvent fonctionner sur une ou plusieurs pages Web et les enregistrer sous forme de fichier PDF.

Nous pouvons lire le contenu directement à partir de l’URL de la page Web ou d’un fichier HTML enregistré sur l’appareil. La fonction from_url() lit le contenu à partir d’une URL et la fonction from_file() lit à partir d’un fichier.

Le nom et le chemin du fichier peuvent être spécifiés dans la fonction.

Voir le code suivant pour voir leur utilisation

import pdfkit

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

On peut aussi stocker ce contenu dans une variable en mentionnant False dans la fonction à la place du nom du PDF.

N’oubliez pas d’installer wkhtmltopdf depuis son site officiel avant d’utiliser cette méthode.

Utilisez le module weasyprint pour enregistrer du HTML au format PDF à l’aide de Python

Le module weasyprint est utilisé pour rendre les pages Web dans des formats de document. Nous utilisons la fonction HTML pour lire l’URL et l’enregistrer au format PDF à l’aide de la fonction write_pdf().

Par example,

import weasyprint

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

De nombreux autres modules et fonctionnalités doivent être installés avant d’utiliser weasyprint, il est donc recommandé de ne pas l’utiliser.
De plus, Python 2 a supprimé la prise en charge de ce module.

Utilisez le module PyQT pour enregistrer du HTML au format PDF à l’aide de Python

Le module PyQT dispose d’une vaste gamme de fonctionnalités pour le développement d’interfaces graphiques et d’autres fonctionnalités. Nous pouvons lire manuellement une URL de page Web HTML et la convertir en PDF à l’aide de différentes fonctions.

Voir le code suivant.

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_())
Auteur: Manav Narula
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