Enregistrer le HTML au format PDF en Python
-
Utilisez l’API
wkhtmltopdf
avec Pdfkit pour enregistrer du HTML au format PDF à l’aide de Python -
Utilisez le module
weasyprint
pour enregistrer du HTML au format PDF à l’aide de Python -
Utilisez le module
PyQT
pour enregistrer du HTML au format PDF à l’aide de 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_())
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