HTML als PDF in Python speichern

Manav Narula 9 Juli 2021
  1. Verwenden Sie die API wkhtmltopdf mit Pdfkit, um HTML mit Python als PDF zu speichern
  2. Verwenden Sie das Modul weasyprint, um HTML mit Python als PDF zu speichern
  3. Verwenden Sie das Modul PyQT, um HTML mit Python als PDF zu speichern
HTML als PDF in Python speichern

HTML ist die grundlegendste und beliebteste Sprache für die Webentwicklung. Es bildete die Basis für viele Sprachen. Python unterstützt das Erstellen von Verbindungen und das Arbeiten mit Websites.

Ein PDF ist ein tragbares Dokument, das auf verschiedenen Geräten angezeigt werden kann und unabhängig von der Software ist, mit der es erstellt wurde.

In diesem Tutorial speichern wir eine HTML-Webseite mit Python als PDF.

Verwenden Sie die API wkhtmltopdf mit Pdfkit, um HTML mit Python als PDF zu speichern

wkhtmltopdf ist ein Open-Source-Set von Tools, die eine HTML-Webseite in eine PDF-Datei konvertieren können. Wir verwenden das pdfkit-Modul, um damit in Python zu arbeiten. Die Funktionen dieses Moduls können auf einzelnen oder mehreren Webseiten arbeiten und diese als PDF-Datei speichern.

Wir können den Inhalt direkt von der Webseiten-URL oder einer auf dem Gerät gespeicherten HTML-Datei lesen. Die Funktion from_url() liest Inhalt von einer URL und die Funktion from_file() liest aus einer Datei.

Innerhalb der Funktion können Name und Pfad der Datei angegeben werden.

Sehen Sie sich den folgenden Code an, um ihre Verwendung zu sehen

import pdfkit

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

Wir können diesen Inhalt auch in einer Variablen speichern, indem wir False in der Funktion anstelle des PDF-Namens erwähnen.

Denken Sie daran, wkhtmltopdf von der offiziellen Website zu installieren, bevor Sie diese Methode verwenden.

Verwenden Sie das Modul weasyprint, um HTML mit Python als PDF zu speichern

Das Modul weasyprint wird verwendet, um Webseiten in Dokumentformate zu rendern. Wir verwenden die HTML-Funktion, um die URL zu lesen und mit der Funktion write_pdf() als PDF zu speichern.

Beispielsweise,

import weasyprint

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

Viele andere Module und Funktionalitäten müssen vor der Verwendung von weasyprint installiert werden, daher wird empfohlen, es nicht zu verwenden.
Außerdem hat Python 2 die Unterstützung für dieses Modul entfernt.

Verwenden Sie das Modul PyQT, um HTML mit Python als PDF zu speichern

Das PyQT-Modul verfügt über eine Vielzahl von Funktionen für die GUI-Entwicklung und andere Funktionen. Wir können eine HTML-Webseiten-URL manuell lesen und mit verschiedenen Funktionen in ein PDF konvertieren.

Siehe den folgenden Code.

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