IronPDF bietet Python-Entwicklern einen direkten Weg vom HTML-Markup zu produktionsreifen PDF-Dateien – ohne zwischengeschaltete Design-Tools, ohne proprietäre Layout-Engines und ohne separate Rendering-Pipeline. Die ChromePdfRenderer-Klasse der Bibliothek nutzt intern eine Chromium-basierte Engine, sodass jeder HTML-Code, der in Chrome korrekt angezeigt wird, präzise in PDF konvertiert wird. Dieses Tutorial führt durch jede unterstützte Konvertierungsmethode — HTML-Strings, lokale HTML-Dateien und Live-URLs — und behandelt dann die Rendering-Optionen, die Ihnen ermöglichen, Seitengröße, Ränder, Kopfzeilen, Fußzeilen und mehr zu steuern.
Ein Begleittutorial ist verfügbar für die Konvertierung von HTML zu PDF in .NET-Anwendungen, wenn Sie den C#- oder VB.NET-Workflow benötigen.
Schnellstart: HTML zu PDF in Python konvertieren
Wie man mit Python HTML in PDF konvertiert
- Installieren Sie IronPDF for Python über pip
- Importieren Sie die Bibliothek mit
from ironpdf import * ChromePdfRendererinstanziieren- Rufen Sie
RenderHtmlAsPdf,RenderUrlAsPdfoderRenderHtmlFileAsPdfauf - Speichern Sie das Ergebnis mit
pdf.SaveAs("output.pdf")
Inhaltsverzeichnis
- Wie installiert man IronPDF for Python?
- Wie konfiguriert man IronPDF vor der Konvertierung?
- Wie konvertiert man einen HTML-String zu PDF?
- Wie konvertiert man eine URL zu PDF?
- Wie konvertiert man eine HTML-Datei zu PDF?
- Wie steuert man die PDF-Rendering-Optionen?
- Wie fügt man benutzerdefinierte Kopf- und Fußzeilen hinzu?
- Was sind die nächsten Schritte?
Erste Schritte
Wie installiert man IronPDF for Python?
IronPDF wird über pip, den Standard-Paketmanager von Python, verteilt. Führen Sie den folgenden Befehl in einem Terminal aus, um die neueste Version zu installieren:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install.sh
pip install ironpdf
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install.sh
pip install ironpdf
Um eine bestimmte Version festzulegen — nützlich in CI-Pipelines oder containerisierten Umgebungen — hängen Sie die Versionsnummer an:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install-versioned.sh
pip install ironpdf==2024.x.x
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install-versioned.sh
pip install ironpdf==2024.x.x
Beim ersten Aufruf initialisiert IronPDF einen kompatiblen Chromium-Binary. Dieser Download dauert einen Moment auf einem frischen Rechner, erfolgt aber nur einmal pro Umgebung. Folgende Durchläufe starten viel schneller, da der Binary lokal zwischengespeichert wird.
Anleitungen und Code-Beispiele
Wie konfiguriert man IronPDF vor der Konvertierung?
Zwei Setup-Aufgaben lohnen sich vor dem ersten Konvertierungsaufruf: Setzen eines Lizenzschlüssels und — optional — Konfigurieren eines Protokolldateipfads.
Paketimportieren
Jede Python-Datei, die IronPDF verwendet, benötigt diese eine Importzeile. Platzieren Sie sie am Anfang der Datei:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import.py
from ironpdf import *
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import.py
from ironpdf import *
Alle IronPDF-Klassen – ChromePdfRenderer, PdfDocument, License, Logger und die übrigen – werden über diesen Wildcard-Import verfügbar.
Lizenzschlüssel setzen
Ohne Lizenzschlüssel fügt IronPDF jedem generierten PDF ein gekacheltes Wasserzeichen hinzu. Das Wasserzeichen eignet sich für Entwicklung und Tests, aber produktive Bereitstellungen erfordern einen gültigen Schlüssel.
Ohne Lizenzschlüssel generierte PDFs beinhalten ein gekacheltes Wasserzeichen. Besuchen Sie die Lizenzierungsseite, um einen Schlüssel zu erhalten.
Setzen Sie den Schlüssel vor allen anderen IronPDF-Aufrufen:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/set-license.py
from ironpdf import *
# Set the license key before any PDF operations
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/set-license.py
from ironpdf import *
# Set the license key before any PDF operations
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Starten Sie eine kostenlose Testversion, um einen temporären Schlüssel zu erhalten, oder kaufen Sie eine Lizenz für uneingeschränkten produktiven Einsatz.
Protokollausgabe konfigurieren
IronPDF schreibt Diagnoseausgaben in eine Datei namens Default.log im Arbeitsverzeichnis des Skripts. Um die Protokollierung auf einen anderen Pfad umzuleiten oder mehr Details für die Fehlersuche zu erfassen, legen Sie die Logger-Eigenschaften vor der ersten Konvertierung fest:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/configure-logging.py
from ironpdf import *
# Configure logging before running any conversions
Logger.EnableDebugging = True
Logger.LogFilePath = "ironpdf-debug.log"
Logger.LoggingMode = Logger.LoggingModes.All
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/configure-logging.py
from ironpdf import *
# Configure logging before running any conversions
Logger.EnableDebugging = True
Logger.LogFilePath = "ironpdf-debug.log"
Logger.LoggingMode = Logger.LoggingModes.All
Logger.LogFilePath muss vor dem ersten Aufruf der PDF-Konvertierung gesetzt werden. Änderungen, die danach vorgenommen werden, haben keine Auswirkungen auf die aktuelle Sitzung.Detaillierte Protokolle sind am nützlichsten, wenn es darum geht, herauszufinden, warum eine bestimmte HTML-Seite nicht wie erwartet gerendert wird — sie erfassen Netzwerk-Anfragen, CSS-Ladeereignisse und die Zeitplanung der JavaScript-Ausführung.
Wie konvertiert man einen HTML-String in ein PDF?
Die Konvertierung eines HTML-Strings im Speicher ist der direkteste Ansatz und funktioniert gut, wenn das HTML programmatisch generiert wird — etwa aus einer Jinja2-Vorlage oder einem datenbankgesteuerten Bericht.
Grundlegende HTML-String-Konvertierung
Instanziieren Sie ChromePdfRenderer, übergeben Sie die HTML-Zeichenkette an RenderHtmlAsPdf und rufen Sie SaveAs für das zurückgegebene PdfDocument auf:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-basic.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Python.</p>")
pdf.SaveAs("hello.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-basic.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Python.</p>")
pdf.SaveAs("hello.pdf")
ChromePdfRenderer verarbeitet HTML, CSS und JavaScript auf dieselbe Weise wie ein moderner Browser. Jeder Inhalt, der in Chrome korrekt gerendert wird, erzeugt ein genaues PDF.
HTML-String mit externen Ressourcen
Wenn die HTML-Zeichenkette auf lokale Ressourcen verweist – Stylesheets, Bilder, Skripte –, übergeben Sie den Verzeichnispfad als zweites Argument an RenderHtmlAsPdf. IronPDF verwendet diesen Pfad als Basis-URL beim Auflösen von relativen Referenzen:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-assets.py
from ironpdf import *
html_content = """
<html>
<head>
<title>Styled Report</title>
<link rel='stylesheet' href='assets/style.css'>
</head>
<body>
<h1>Monthly Report</h1>
<img src='assets/logo.png' alt='Company logo'>
<p>Data as of Q1 2024.</p>
</body>
</html>
"""
renderer = ChromePdfRenderer()
# The second argument sets the base path for resolving relative asset URLs
pdf = renderer.RenderHtmlAsPdf(html_content, "./")
pdf.SaveAs("styled-report.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-assets.py
from ironpdf import *
html_content = """
<html>
<head>
<title>Styled Report</title>
<link rel='stylesheet' href='assets/style.css'>
</head>
<body>
<h1>Monthly Report</h1>
<img src='assets/logo.png' alt='Company logo'>
<p>Data as of Q1 2024.</p>
</body>
</html>
"""
renderer = ChromePdfRenderer()
# The second argument sets the base path for resolving relative asset URLs
pdf = renderer.RenderHtmlAsPdf(html_content, "./")
pdf.SaveAs("styled-report.pdf")
Der Basis-Pfad kann auf ein beliebiges lokales Verzeichnis oder einen Netzwerkordner zeigen. Ressourcen in Unterverzeichnissen werden relativ dazu aufgelöst. Für weitere Muster bei komplexen HTML-Strings siehe das HTML-String zu PDF-Code-Beispiel.
Wie wandelt man eine URL in ein PDF um?
Die Methode RenderUrlAsPdf ruft eine Live-URL ab, wartet, bis die Seite vollständig geladen ist – einschließlich aller JavaScript-gesteuerten Inhalte – und konvertiert das gerenderte Ergebnis in ein PDF. Dies macht es geeignet für das Erfassen von Dashboards, Berichten oder jede Seite, bei der der endgültige visuelle Zustand von der JavaScript-Ausführung abhängt.
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Fetch and convert a live web page to PDF
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
pdf.SaveAs("wikipedia-pdf.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Fetch and convert a live web page to PDF
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
pdf.SaveAs("wikipedia-pdf.pdf")
ChromePdfRenderer, bevor Sie RenderUrlAsPdf aufrufen. Siehe den HTTP-Login-Credentials-Leitfaden für weitere Details.Wenn die Zielseite asynchrone Inhalte lädt, wartet IronPDF darauf, dass die Chromium-Rendering-Engine signalisiert, dass das Dokument vollständig gerendert ist. Bei Seiten mit umfangreichem JavaScript oder verzögerten Netzwerkanfragen sollten Sie erwägen, die Eigenschaften von WaitFor auf ChromePdfRenderOptions anzupassen (siehe Abschnitt "Rendering-Optionen" weiter unten). Das URL zu PDF-Code-Beispiel zeigt weitere Konfigurationsmuster.
Wie konvertiert man eine HTML-Datei zu PDF?
RenderHtmlFileAsPdf akzeptiert einen Pfad zu einer lokalen HTML-Datei und konvertiert diese direkt. Relative Pfade innerhalb des HTML — zu CSS-Dateien, Bildern oder JavaScript — werden automatisch relativ zum Verzeichnis der HTML-Datei aufgelöst, sodass kein Basis-Pfad-Argument benötigt wird.
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Convert a local HTML file (and its linked CSS/JS) to PDF
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")
pdf.SaveAs("invoice.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Convert a local HTML file (and its linked CSS/JS) to PDF
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")
pdf.SaveAs("invoice.pdf")
Diese Methode ist besonders nützlich für die serverseitige Dokumentenerstellung, bei der eine HTML-Vorlage bereits auf die Festplatte geschrieben wurde — ein verbreitetes Muster, wenn Django oder Flask verwendet werden, um Jinja2-Vorlagen zu Dateien zu rendern, bevor sie für den Download in PDF konvertiert werden.
IronPDF löst alle <link>-, <script>- und <img>-Tags relativ zum Speicherort der HTML-Datei auf, sodass verknüpfte Stylesheets, eingebettete Schriftarten und Bilder im PDF genau so erscheinen wie im Browser. Der Prozess entspricht der Art und Weise, wie RenderHtmlAsPdf Inline-Assets verarbeitet, mit dem Unterschied, dass kein expliziter Basispfad angegeben werden muss.
Wie kontrollieren Sie die PDF-Rendering-Optionen?
ChromePdfRenderOptions ist das Konfigurationsobjekt, das an ChromePdfRenderer (oder direkt an eine der Render-Methoden) übergeben wird, um Seitenlayout, Ränder, Papierformat und andere Ausgabeeigenschaften zu steuern. Das Festlegen von Optionen vor der Konvertierung ist die Standardmethode, um die PDF-Ausgabe anzupassen.
Papiergröße und Ausrichtung
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-paper.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Configure page layout before rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
renderer.RenderingOptions.MarginRight = 15
pdf = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Content here.</p>")
pdf.SaveAs("landscape-a4.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-paper.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Configure page layout before rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
renderer.RenderingOptions.MarginRight = 15
pdf = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Content here.</p>")
pdf.SaveAs("landscape-a4.pdf")
Ränder werden in Millimetern angegeben. PdfPaperSize unterstützt alle Standard-ISO-Formate – A0 bis A10, Letter, Legal, Tabloid – sowie Custom für beliebige Abmessungen, die durch CustomPaperWidth und CustomPaperHeight definiert sind.
Benutzerdefinierte Papierabmessungen
Wenn Standard-Papiergrößen nicht den Anforderungen entsprechen — z.B. bei einem Quittungs- oder Etikettendruckerformat — definieren Sie Breite und Höhe explizit:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-custom-size.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Set a custom paper size (in millimetres)
renderer.RenderingOptions.PaperSize = PdfPaperSize.Custom
renderer.RenderingOptions.CustomPaperWidth = 80 # 80 mm receipt roll width
renderer.RenderingOptions.CustomPaperHeight = 200
pdf = renderer.RenderHtmlAsPdf("<h2>Receipt</h2><p>Total: $12.50</p>")
pdf.SaveAs("receipt.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-custom-size.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Set a custom paper size (in millimetres)
renderer.RenderingOptions.PaperSize = PdfPaperSize.Custom
renderer.RenderingOptions.CustomPaperWidth = 80 # 80 mm receipt roll width
renderer.RenderingOptions.CustomPaperHeight = 200
pdf = renderer.RenderHtmlAsPdf("<h2>Receipt</h2><p>Total: $12.50</p>")
pdf.SaveAs("receipt.pdf")
Ausführung von JavaScript aktivieren
Standardmäßig führt IronPDF JavaScript während des Renderings aus. Wenn eine Seite von JavaScript abhängt, um sichtbare Inhalte – Diagramme, Datentabellen, dynamische Formularwerte – zu generieren, bedeutet dieses Verhalten, dass das gerenderte PDF den endgültigen DOM-Zustand widerspiegelt. Um JavaScript für Seiten zu deaktivieren, auf denen dies nicht erforderlich ist:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-javascript.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Disable JavaScript for static HTML pages
renderer.RenderingOptions.EnableJavaScript = False
pdf = renderer.RenderHtmlAsPdf("<p>Static content only.</p>")
pdf.SaveAs("static.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-javascript.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Disable JavaScript for static HTML pages
renderer.RenderingOptions.EnableJavaScript = False
pdf = renderer.RenderHtmlAsPdf("<p>Static content only.</p>")
pdf.SaveAs("static.pdf")
Das Deaktivieren von JavaScript verkürzt die Renderzeit für einfache, statische HTML-Dokumente.
Weitere Details zu den Rendering-Konfigurationen finden Sie unter PDF-Erstellungseinstellungen und dem Beispiel für benutzerdefinierte Papiergrößen.
Wie fügen Sie benutzerdefinierte Kopf- und Fußzeilen hinzu?
Kopf- und Fußzeilen in IronPDF werden über HtmlHeaderFooter- oder TextHeaderFooter-Objekte angewendet, die an das RenderingOptions des Renderers angehängt sind. HtmlHeaderFooter bietet Ihnen volle Kontrolle über HTML und CSS – ideal für Briefköpfe mit Logos. TextHeaderFooter ist einfacher und deckt die meisten textbasierten Anforderungen ab, einschließlich dynamischer Seitenzahlen.
Textbasierte Kopf- und Fußzeile
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-text.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Add a text header with the document title
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Quarterly Report — Q1 2024"
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.FontSize = 10
# Add a footer with page numbers
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
renderer.RenderingOptions.TextFooter.FontSize = 9
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
html = "<h1>Executive Summary</h1><p>Revenue increased 12% year-over-year.</p>"
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report-with-footer.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-text.py
from ironpdf import *
renderer = ChromePdfRenderer()
# Add a text header with the document title
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Quarterly Report — Q1 2024"
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.FontSize = 10
# Add a footer with page numbers
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
renderer.RenderingOptions.TextFooter.FontSize = 9
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
html = "<h1>Executive Summary</h1><p>Revenue increased 12% year-over-year.</p>"
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report-with-footer.pdf")
Die Platzhalter {page} und {total-pages} werden beim Rendern durch die korrekten Werte ersetzt. Weitere verfügbare Platzhalter sind {date}, {time} und {url}.
HTML-basierte Kopfzeile mit Logo
Wenn eine Marken-Kopfzeile erforderlich ist – ein Firmenlogo, ein Farbstreifen oder ein formatierter Adressblock – verwenden Sie stattdessen HtmlHeaderFooter:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-html.py
from ironpdf import *
renderer = ChromePdfRenderer()
header_html = """
<div style="font-family: Arial, sans-serif; border-bottom: 2px solid #003366; padding: 8px 0;">
<img src='assets/logo.png' style='height: 40px; float: left;' alt='Company logo'>
<span style='float: right; font-size: 11px; color: #666;'>Confidential</span>
<div style='clear:both;'></div>
</div>
"""
renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.HtmlFragment = header_html
renderer.RenderingOptions.HtmlHeader.BaseUrl = "./"
html_body = "<h1>Project Status Update</h1><p>All milestones on track.</p>"
pdf = renderer.RenderHtmlAsPdf(html_body, "./")
pdf.SaveAs("branded-report.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-html.py
from ironpdf import *
renderer = ChromePdfRenderer()
header_html = """
<div style="font-family: Arial, sans-serif; border-bottom: 2px solid #003366; padding: 8px 0;">
<img src='assets/logo.png' style='height: 40px; float: left;' alt='Company logo'>
<span style='float: right; font-size: 11px; color: #666;'>Confidential</span>
<div style='clear:both;'></div>
</div>
"""
renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.HtmlFragment = header_html
renderer.RenderingOptions.HtmlHeader.BaseUrl = "./"
html_body = "<h1>Project Status Update</h1><p>All milestones on track.</p>"
pdf = renderer.RenderHtmlAsPdf(html_body, "./")
pdf.SaveAs("branded-report.pdf")
BaseUrl auf HtmlHeaderFooter auf denselben Basis-Pfad, der für den Dokumenttext verwendet wird. Dies stellt sicher, dass Bilder und Stylesheets, die im Kopf-HTML referenziert werden, korrekt aufgelöst werden.Die Kopf- und Fußzeile erscheint auf jeder Seite des generierten PDFs, einschließlich mehrseitiger Dokumente. Für ein funktionierendes Beispiel mit metadatengestützten Seitenzahlen in der Fußzeile siehe das HTML Kopf- und Fußzeilen Beispiel.
Randanpassungen für Kopf- und Fußzeilen
Beim Hinzufügen einer Kopf- oder Fußzeile erhöhen Sie den entsprechenden Rand, damit der Inhalt nicht mit dem Seitenkörper überlappt:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-margins.py
from ironpdf import *
renderer = ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 30 # Make room for header
renderer.RenderingOptions.MarginBottom = 20 # Make room for footer
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Internal Use Only"
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"
pdf = renderer.RenderHtmlAsPdf("<h1>Internal Document</h1><p>Body content.</p>")
pdf.SaveAs("margined-report.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-margins.py
from ironpdf import *
renderer = ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 30 # Make room for header
renderer.RenderingOptions.MarginBottom = 20 # Make room for footer
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Internal Use Only"
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"
pdf = renderer.RenderHtmlAsPdf("<h1>Internal Document</h1><p>Body content.</p>")
pdf.SaveAs("margined-report.pdf")
Bei layoutkritischen Dokumenten kombinieren Sie Randanpassungen mit den Einstellungen PaperSize, um die Ausgabe exakt an eine PRINT-Spezifikation anzupassen. Zusätzliche Layout-Steuerelemente – wie IronSoftwareSystemDrawingColor Hintergrundfüllungen und CSS-@page-Regeln – werden im Beispiel für benutzerdefinierte Ränder näher erläutert.
Was sind die nächsten Schritte?
Dieses Tutorial behandelte die drei zentralen HTML-zu-PDF-Konvertierungsmethoden und die Rendering-Optionen, die deren Ausgabe steuern. Die folgenden Anleitungen bauen auf dieser Grundlage auf und behandeln spezialisiertere Aufgaben:
- Einstellungen zur PDF-Erstellung – Ein tiefer Einblick in
ChromePdfRenderOptions: DPI, Hintergrundrendering, CSS-Medientyp, JavaScript-Wartestrategien sowie PRINT- und Bildschirmmodus. - HTML Kopf- und Fußzeilen — Gebrandete Kopf- und Fußzeilen-Vorlagen mit Logos, Seitenzahlen, Daten und mehrspaltigen Layouts.
- Benutzerdefinierte Ränder und Papiergrößen — Feinabstimmung der Seitengeometrie für druckfertige Ausgaben und nicht standardisierte Formate.
- Fügen Sie PDFs Wasserzeichen hinzu — Stempeln Sie Text- oder Bildwasserzeichen auf vorhandene oder neu generierte PDFs.
- Text aus PDFs extrahieren — Lesen Sie den Textinhalt aus generierten oder bestehenden PDFs programmatisch.
Starten Sie eine kostenlose 30-Tage-Testversion, um unbegrenzte, wasserzeichenfreie PDFs während der Bewertung zu erstellen. Wenn Sie bereit für die Produktion sind, sehen Sie sich die Lizenzierungsoptionen für Teams und Enterprise-Bereitstellungen an.
Häufig gestellte Fragen
Wie konvertiere ich einen HTML-String in PDF in Python?
Instanziieren Sie ChromePdfRenderer, dann rufen Sie renderer.RenderHtmlAsPdf(html_string) auf. Die Methode akzeptiert beliebiges gültiges HTML, einschließlich Inline-CSS und JavaScript. Speichern Sie das zurückgegebene PdfDocument mit pdf.SaveAs("output.pdf").
Wie installiere ich IronPDF for Python?
Führen Sie pip install ironpdf von einem Terminal aus. IronPDF for Python erfordert das .NET 6.0 SDK oder höher, das vor der ersten Verwendung separat installiert werden muss.
Kann IronPDF eine Live-URL in PDF in Python konvertieren?
Ja. Verwenden Sie renderer.RenderUrlAsPdf("https://example.com"). IronPDF ruft die Seite mit einer Chromium-Engine ab, wartet darauf, dass JavaScript die Ausführung beendet, und generiert dann das PDF aus dem vollständig gerenderten DOM.
Wie konvertiere ich eine lokale HTML-Datei in PDF?
Rufen Sie renderer.RenderHtmlFileAsPdf("path/to/file.html") auf. IronPDF löst alle relativen Asset-Pfade - Stylesheets, Bilder, Skripte - automatisch relativ zum Verzeichnis der HTML-Datei auf.
Wie entferne ich das Wasserzeichen aus von IronPDF generierten PDFs?
Setzen Sie einen gültigen Lizenzschlüssel mit License.LicenseKey = "IHR-SCHLÜSSEL" vor jeder PDF-Operation. Ohne Schlüssel fügt IronPDF ein gekacheltes Wasserzeichen hinzu, das für die Entwicklung, aber nicht für die Produktion geeignet ist.
Welche Rendering-Optionen bietet IronPDF for Python?
Eigenschaften in renderer.RenderingOptions steuern Papiergröße (PaperSize), Ausrichtung (PaperOrientation), Ränder (MarginTop, MarginLeft, etc.), benutzerdefinierte Abmessungen (CustomPaperWidth, CustomPaperHeight), JavaScript-Ausführung (EnableJavaScript) und mehr.
Wie füge ich Seitenzahlen zu einem PDF mit IronPDF in Python hinzu?
Weisen Sie ein TextHeaderFooter renderer.RenderingOptions.TextFooter zu und fügen Sie den Platzhalter {page} oder {total-pages} in einer der Texteigenschaften wie RightText oder CenterText ein.
Kann ich jedem Seite eines generierten PDFs ein gebrandetes Logo-Header hinzufügen?
Ja. Verwenden Sie HtmlHeaderFooter mit einem HTML-Fragment, das ein -Tag enthält. Weisen Sie es renderer.RenderingOptions.HtmlHeader zu und setzen Sie BaseUrl, damit der Bildpfad korrekt aufgelöst wird.
Unterstützt IronPDF benutzerdefinierte Papiergrößen in Python?
Ja. Setzen Sie renderer.RenderingOptions.PaperSize auf PdfPaperSize.Custom und dann CustomPaperWidth und CustomPaperHeight in Millimetern, um beliebige Seitenabmessungen zu definieren.
Welche .NET-Version erfordert IronPDF for Python?
IronPDF for Python erfordert das .NET 6.0 SDK oder höher. Das SDK ist kostenfrei auf der Microsoft .NET-Downloadseite verfügbar und muss installiert sein, bevor Sie IronPDF pip-installieren oder ausführen.




