Wie man HTML in PDF mit IronPDF for Python konvertiert

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


Inhaltsverzeichnis


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
SHELL

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
SHELL

Hinweis:IronPDF for Python baut auf der IronPDF .NET-Bibliothek auf und erfordert das .NET 6.0 SDK oder neuer. Installieren Sie das SDK, bevor Sie IronPDF-Python-Code ausführen.

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 *
PYTHON

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"
PYTHON

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
PYTHON

Hinweis: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")
PYTHON
PDF rendered from a simple HTML string showing a heading and paragraph

RenderHtmlAsPdf verarbeitet HTML genau so, wie es Chrome tun würde, einschließlich CSS und JavaScript.

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")
PYTHON
PDF output from an HTML string that references external CSS and image assets

Externe CSS und Bilder werden korrekt geladen, wenn Sie einen Basis-Pfad zu RenderHtmlAsPdf angeben.

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")
PYTHON
PDF generated from a Wikipedia article URL using IronPDF's RenderUrlAsPdf method

IronPDF ruft die Live-URL ab und rendert die gesamte Seite — einschließlich JavaScript — vor der PDF-Erzeugung.

TippsFür Seiten, die eine Authentifizierung erfordern, setzen Sie Cookies oder HTTP-Request-Header auf der Instanz 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")
PYTHON

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")
PYTHON

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")
PYTHON

WichtigBenutzerdefinierte Papiergrößen sind besonders nützlich für Thermodrucker und Etikettenformate wie 4×6-Zoll-Versandetiketten.

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")
PYTHON

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")
PYTHON

Die Platzhalter {page} und {total-pages} werden beim Rendern durch die korrekten Werte ersetzt. Weitere verfügbare Platzhalter sind {date}, {time} und {url}.

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")
PYTHON

Hinweis:Setzen Sie 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")
PYTHON

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:

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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis?
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.