HTML zu PDF: Python
Dieser Leitfaden bietet Python-Entwicklern Schritt-für-Schritt-Anweisungen zur Nutzung der IronPDF-Bibliothek, um HTML-Inhalte in hochwertige PDF-Dateien (Portable Document Format) zu konvertieren.
IronPDF ist eine umfassende PDF-Konvertierungs- und Verarbeitungslibrary, die mehrere Programmiersprachen unterstützt, einschließlich .NET, Java und Python Programmiersprachen. Dieses Tutorial konzentriert sich speziell auf die Verwendung von IronPDF in Python-Skripten zur Konvertierung von HTML-Inhalten, sei es in Form von Dateien oder Markup.
Für ein separates Tutorial zum Konvertieren von HTML in PDF in .NET-Anwendungen, beachten Sie bitte folgendes hier.
Übersicht
Konvertieren von HTML in PDF in Python

- Installieren Sie die erforderliche Python-Bibliothek für die Umwandlung von HTML in PDF
- Nutzen Sie die
RenderHtmlAsPdf
-Methode, um eine HTML-Zeichenfolge in ein PDF-Dokument umzuwandeln - PDF-Dateien direkt aus einer Website-URL in Python erstellen
- Konvertieren Sie HTML-Dateien in PDF-Dateien mithilfe der Methode
RenderHtmlFileAsPdf
- Speichern Sie die generierte PDF-Datei als neue Datei
Erste Schritte
Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.
1. Installation von IronPDF PDF Library for Python
Um die IronPDF-Bibliothek für Python zu installieren, können Sie den beliebten Paketmanager pip verwenden. Führen Sie einfach den folgenden Befehl aus:
pip installieren ironpdf
Tipps
IronPDF Python basiert auf der IronPDF .NET-Bibliothek, insbesondere auf .NET 6.0, als zugrunde liegende Technologie. Daher ist es notwendig, das .NET 6.0 SDK auf Ihrem Rechner installiert zu haben, um IronPDF Python verwenden zu können.
Anleitungen und Code-Beispiele
2. HTML in PDF umwandeln
Im folgenden Abschnitt werden wir uns mit den beeindruckenden Rendering-Fähigkeiten von IronPDF bei der Konvertierung von HTML in PDF befassen.
Die Hauptkomponente für das Rendern von PDF-Dokumenten ist die ChromePdfRenderer
-Klasse. Zusätzlich bietet die PdfDocument
-Klasse eine Reihe von Bearbeitungsfunktionen. IronPDF bietet zuverlässige Methoden zur Umwandlung von HTML-Inhalten in PDF-Dokumente und bedient drei Hauptszenarien:
- Konvertierung von HTML-Strings/Markup in PDF
- HTML-Dateien/Zips in PDF konvertieren
-
URLs in PDF umwandeln
In diesem Abschnitt wird ein kurzer Überblick über jeden Anwendungsfall gegeben, begleitet von zusätzlichen Ressourcen für weitere Details.
2.1 Importieren Sie das IronPDF-Paket
Um IronPDF zu importieren, fügen Sie die folgenden Import-Anweisungen am Anfang der Quelldateien ein, in denen IronPDF verwendet werden soll:
# Import statements for IronPDF Python
from ironpdf import *
2.2. Einstellen des Lizenzschlüssels (optional)
IronPDF for Python ist kostenlos, aber es fügt PDFs ein gekacheltes Wasserzeichen im Hintergrund für kostenlose Benutzer hinzu.
Besuchen Sie die Lizenzseite, um Ihren Lizenzschlüssel zu erhalten und ein wasserzeichenfreies PDF zu genießen.
Um mit IronPDF PDFs ohne Wasserzeichen zu erzeugen, ist es notwendig, der Bibliothek einen gültigen Lizenzschlüssel zu geben. Der folgende Codeschnipsel zeigt, wie die Bibliothek mit einem Lizenzschlüssel konfiguriert wird:
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Vergewissern Sie sich, dass der Lizenzschlüssel gesetzt ist, bevor Sie PDF-Dateien erzeugen oder deren Inhalt ändern. Es wird empfohlen, die LicenseKey
-Methode vor allen anderen Codezeilen aufzurufen.
Sie können einen Lizenzschlüssel erwerben auf unserer Lizenzierungsseite oder kontaktieren Sie uns, um einen kostenlosen Testlizenzschlüssel zu erhalten.
2.3 Festlegen des Speicherorts der Protokolldatei (optional)
IronPDF kann Protokollnachrichten in eine Textdatei mit dem Namen Default.log im gleichen Verzeichnis wie Ihr Python-Skript generieren.
Wenn Sie den Namen und den Speicherort der Protokolldatei anpassen möchten, können Sie die Eigenschaft LogFilePath
mit dem folgenden Code-Snippet festlegen:
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
[{i:(Logger.LogFilePath
sollte aufgerufen werden, bevor Sie PDF-Konvertierungs- und Manipulationsmethoden verwenden.
2.4. Erstellen einer PDF-Datei aus einem HTML-String
Die Methode RenderHtmlAsPdf
konvertiert eine HTML-Zeichenkette in ein Dokument im PDF-Format.
Das folgende Codeschnipsel zeigt, wie man eine PDF-Datei aus einer HTML-Zeichenkette mit einem einzelnen Headline-Element erzeugt:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
Die RenderHtmlAsPdf
-Methode verarbeitet HTML, CSS und JavaScript auf die gleiche Weise wie moderne Browser und gewährleistet so eine genaue Darstellung des Inhalts. Mit dieser Funktion können Softwareentwickler PDF-Dateien erstellen, die ihren Pendants im Webbrowser sehr ähnlich sind.
Darüber hinaus kann die RenderHtmlAsPdf
-Methode externe Ressourcen wie Bilder, Stylesheets und Skripte verarbeiten, die sich in lokalen oder Netzwerkordnern befinden. Das folgende Beispiel demonstriert die Erstellung eines PDF-Dokuments aus HTML, das auf eine CSS-Datei und ein Bild verweist, die in einem assets-Ordner gespeichert sind:
from ironpdf import *
html = """
<html>
<head>
<title>Hello world!</title>
<link rel='stylesheet' href='assets/style.css'>
</head>
<body>
<h1>Hello from IronPDF!</h1>
<a href="https://ironpdf.com/python/"><img src='assets/logo.png' /></a>
</body>
</html>
"""
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Das Ergebnis des obigen Codes ist in der folgenden Abbildung zu sehen.
Zusätzlich haben Entwickler die Möglichkeit, ein zweites Argument an die RenderHtmlAsPdf
-Methode zu übergeben, wodurch sie einen Basispfad zum Referenzieren von Webassets angeben können. Dieser Pfad kann auf ein lokales Verzeichnis im Dateisystem oder sogar auf einen URL-Pfad verweisen.
Um ein besseres Verständnis für die Verwendung der RenderHtmlAsPdf
-Methode zu erlangen, können Sie sich dieses Codebeispiel ansehen oder die API-Referenzseiten für detailliertere Informationen konsultieren.
2.5. Erstellen einer PDF-Datei aus einer URL
Um Website-URLs in PDF-Dokumente zu konvertieren, können Entwickler die RenderUrlAsPdf
-Methode von IronPDF nutzen.
Hier ist ein Beispiel, das die Umwandlung eines Wikipedia-Artikels in PDF-Inhalte zeigt.
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
# Export to a file or Stream
pdf.SaveAs("url.pdf")
Das generierte PDF-Dateiformat ist unten dargestellt.
Weitere Informationen finden Sie im Codebeispiel, das zeigt, wie eine Webseite in PDF konvertiert wird.
2.6. Erstellen einer PDF-Datei aus einer HTML-Datei
IronPDF bietet die Möglichkeit, HTML-Dateien in PDF zu konvertieren und in einem lokalen Dateisystem zu speichern. Es wandelt den HTML-Inhalt direkt in das entsprechende PDF-Format um.
Für eine praxisnahe Demonstration dieser Funktionalität zeigt das folgende Codebeispiel die Umwandlung einer HTML-Rechnungsdatei. Sie können auf das HTML-Markup der [Rechnung](https://codepen.io/tjoen/pen/wvgvLX" target="_blank" rel="nofollow noopener noreferrer) zugreifen.
Diese HTML-Auszeichnung soll Ihnen die Arbeit erleichtern:
<html>
<head>
<meta charset="utf-8">
<title>Invoice</title>
<link rel="stylesheet" href="style.css">
<link rel="license" href="https://www.opensource.org/licenses/mit-license/">
<script src="script.js"></script>
</head>
<body>
<header>
<h1>Invoice</h1>
<address contenteditable>
<p>Jonathan Neal</p>
<p>101 E. Chapman Ave<br>Orange, CA 92866</p>
<p>(800) 555-1234</p>
</address>
<span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
<h1>Recipient</h1>
<address contenteditable>
<p>Some Company<br>c/o Some Guy</p>
</address>
<table class="meta">
<tr>
<th><span contenteditable>Invoice #</span></th>
<td><span contenteditable>101138</span></td>
</tr>
<tr>
<th><span contenteditable>Date</span></th>
<td><span contenteditable>January 1, 2012</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Due</span></th>
<td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
</tr>
</table>
<table class="inventory">
<thead>
<tr>
<th><span contenteditable>Item</span></th>
<th><span contenteditable>Description</span></th>
<th><span contenteditable>Rate</span></th>
<th><span contenteditable>Quantity</span></th>
<th><span contenteditable>Price</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
<td><span contenteditable>Experience Review</span></td>
<td><span data-prefix>$</span><span contenteditable>150.00</span></td>
<td><span contenteditable>4</span></td>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</tbody>
</table>
<a class="add">+</a>
<table class="balance">
<tr>
<th><span contenteditable>Total</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Paid</span></th>
<td><span data-prefix>$</span><span contenteditable>0.00</span></td>
</tr>
<tr>
<th><span contenteditable>Balance Due</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</table>
</article>
<aside>
<h1><span contenteditable>Additional Notes</span></h1>
<div contenteditable>
<p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
</div>
</aside>
</body>
</html>
<html>
<head>
<meta charset="utf-8">
<title>Invoice</title>
<link rel="stylesheet" href="style.css">
<link rel="license" href="https://www.opensource.org/licenses/mit-license/">
<script src="script.js"></script>
</head>
<body>
<header>
<h1>Invoice</h1>
<address contenteditable>
<p>Jonathan Neal</p>
<p>101 E. Chapman Ave<br>Orange, CA 92866</p>
<p>(800) 555-1234</p>
</address>
<span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
<h1>Recipient</h1>
<address contenteditable>
<p>Some Company<br>c/o Some Guy</p>
</address>
<table class="meta">
<tr>
<th><span contenteditable>Invoice #</span></th>
<td><span contenteditable>101138</span></td>
</tr>
<tr>
<th><span contenteditable>Date</span></th>
<td><span contenteditable>January 1, 2012</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Due</span></th>
<td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
</tr>
</table>
<table class="inventory">
<thead>
<tr>
<th><span contenteditable>Item</span></th>
<th><span contenteditable>Description</span></th>
<th><span contenteditable>Rate</span></th>
<th><span contenteditable>Quantity</span></th>
<th><span contenteditable>Price</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
<td><span contenteditable>Experience Review</span></td>
<td><span data-prefix>$</span><span contenteditable>150.00</span></td>
<td><span contenteditable>4</span></td>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</tbody>
</table>
<a class="add">+</a>
<table class="balance">
<tr>
<th><span contenteditable>Total</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Paid</span></th>
<td><span data-prefix>$</span><span contenteditable>0.00</span></td>
</tr>
<tr>
<th><span contenteditable>Balance Due</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</table>
</article>
<aside>
<h1><span contenteditable>Additional Notes</span></h1>
<div contenteditable>
<p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
</div>
</aside>
</body>
</html>
Angenommen, wir haben eine lokale HTML-Datei zusammen mit den zugehörigen CSS- und JavaScript-Dateien in einem Ordner mit dem Namen "invoices" gespeichert. Wir können IronPDF verwenden, um die HTML-Beispieldatei mit dem folgenden Python-Code in PDF zu konvertieren:
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an existing HTML file using Python
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")
# Export to a file or Stream
pdf.SaveAs("htmlfile_to_pdf.pdf")
Ähnlich wie bei der Konvertierung von HTML-Strings in PDF löst IronPDF automatisch relative URLs in der HTML-Beispieldatei auf und stellt sicher, dass alle referenzierten Stylesheets und Skripte korrekt auf das resultierende PDF-Dokument angewendet werden. Dadurch wird sichergestellt, dass das visuelle Erscheinungsbild der Webseite in der PDF-Datei korrekt wiedergegeben wird.
3. Weitere Lektüre
Entdecken Sie die umfangreichen Möglichkeiten der HTML-zu-PDF-Darstellung von IronPDF, indem Sie unseren Code-Beispiele-Bereich durchstöbern.
-
Lesen Sie dieses Codebeispiel, um zu erfahren, wie Sie das Erscheinungsbild von PDF-Dokumenten während des Konvertierungsprozesses anpassen können.
-
Lernen Sie, wie Sie PDF-Dateien mit personalisierten Kopf- und Fußzeilen erstellen, Randgrößen anpassen und Seitendimensionen festlegen, Wasserzeichen hinzufügen und mehr.
-
Zusätzlich können Sie Techniken zum Extrahieren von Text, zur Optimierung von Dateigrößen und zum programmgesteuerten Drucken von PDFs erkunden.