HTML zu PDF: Python

This article was translated from English: Does it need improvement?
Translated
View the article in English

Dieses Handbuch bietet Python-Entwicklern eine Schritt-für-Schritt-Anleitung zur Verwendung der IronPDF-Bibliothek, um HTML-Inhalte in das hochwertige PDF-Format zu konvertieren(portables Dokumentenformat) dateien.

IronPDF ist eine umfassende PDF-Konverter- und Verarbeitungsbibliothek, die mehrere Programmiersprachen unterstützt, darunter.NET, JavaundPython 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.

Eine separate Anleitung zur Konvertierung von HTML in PDF in .NET-Anwendungen finden Sie unterhier.


Übersicht


Erste Schritte

1. Installation von IronPDF PDF Library for Python

Python-Bibliothek für PDF

Installieren mit pip

 pip installieren ironpdf
oder
Python-Modul

Herunterladen Modul

Jetzt herunterladen

Manuelle Installation in Ihr Projekt

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
Um eine bestimmte Version von IronPDF zu installieren, verwenden Sie bitte die folgende Syntax: "==2023.x.x". Sie können zum Beispiel den Befehl "pip install ironpdf==2023.x.x" ausführen.

Bitte beachten Sie
IronPDF for Python stützt sich auf die IronPDF for .NET-Bibliothek, insbesondere .NET 6.0, als zugrunde liegende Technologie. Daher ist es erforderlich, dass die.NET 6.0 SDK installiert sein, um IronPDF for Python nutzen 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 die Darstellung von PDF-Dokumenten ist die Klasse "ChromePdfRenderer". Darüber hinaus bietet die Klasse PdfDocument eine Reihe von Manipulationsmöglichkeiten. IronPDF bietet zuverlässige Methoden für die Konvertierung von HTML-Inhalten in PDF-Dokumente und deckt dabei drei Schlüsselszenarien ab:

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

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 lizenzierungsseite um Ihren Lizenzschlüssel zu erhalten und wasserzeichenfreie PDFs 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"
PYTHON

Vergewissern Sie sich, dass der Lizenzschlüssel gesetzt ist, bevor Sie PDF-Dateien erzeugen oder deren Inhalt ändern. Es wird empfohlen, die Methode LicenseKey vor allen anderen Codezeilen aufzurufen.

Sie könneneinen Lizenzschlüssel kaufen von unserer Lizenzierungsseite oder kontaktieren Sie uns, umeinen kostenlosen Testlizenzschlüssel erhalten.

2.3 Festlegen des Speicherorts der Protokolldatei (optional)

IronPDF kann Protokollmeldungen in eine Textdatei mit dem Namen Default.log im selben Verzeichnis wie Ihr Python-Skript erzeugen.

Wenn Sie den Namen und den Speicherort der Protokolldatei anpassen möchten, können Sie die Eigenschaft "LogFilePath" mit dem folgenden Codeschnipsel festlegen:

# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
PYTHON

Bitte beachten Sie
logger.LogFilePath" sollte vor der Verwendung von PDF-Konvertierungs- und Manipulationsmethoden aufgerufen werden.

2.4. Erstellen einer PDF-Datei aus einem HTML-String

Die Methode "RenderHtmlAsPdf" wandelt einen HTML-String in ein Dokument im PDF-Format um.

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

Konvertieren Sie HTML-Auszeichnungen in PDF-Dateien mit dem RenderHtmlAsPdf methode. Diese Methode kann PDFs unter Verwendung aller gültigen W3C-konformen HTML- und CSS-Auszeichnungen erzeugen.

Die Methode "RenderHtmlAsPdf" verarbeitet HTML, CSS und JavaScript auf die gleiche Weise wie moderne Browser, um eine genaue Darstellung des Inhalts zu gewährleisten. Mit dieser Funktion können Softwareentwickler PDF-Dateien erstellen, die ihren Pendants im Webbrowser sehr ähnlich sind.

Außerdem kann die Methode "RenderHtmlAsPdf" externe Ressourcen wie Bilder, Stylesheets und Skripte verarbeiten, die sich in lokalen oder Netzwerkordnern befinden. Das folgende Beispiel zeigt die Erstellung eines PDF-Dokuments aus HTML, das auf eine CSS-Datei und ein in einem Ordner assets gespeichertes Bild verweist:

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

Das Ergebnis des obigen Codes ist in der folgenden Abbildung zu sehen.

RenderHtmlAsPdf methode ist in der Lage, verschiedene Arten von HTML-Inhalten darzustellen. Wenn sie in Chrome angezeigt werden kann, dann RenderHtmlAsPdf wird es wiedergeben!

Zusätzlich haben Entwickler die Möglichkeit, ein zweites Argument für die Methode "RenderHtmlAsPdf" anzugeben, mit dem sie einen Basispfad für die Referenzierung von Web-Assets 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 Methode "RenderHtmlAsPdf" zu erlangen, können Sie unterdieses Codebeispiel oder konsultieren Sie die API-Referenzseiten für ausführlichere Informationen.

2.5. Erstellen einer PDF-Datei aus einer URL

Um Website-URLs in PDF-Dokumente umzuwandeln, können Entwickler die von IronPDF bereitgestellte Methode RenderUrlAsPdf verwenden.

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

Das generierte PDF-Dateiformat ist unten dargestellt.

Weitere Informationen finden Sie untercode-Beispiel demonstriert, wie man eine Webseite in PDF konvertiert.

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.

Als praktische Demonstration dieser Funktionalität zeigt das folgende Codebeispiel die Konvertierung einer rechnung HTML-Datei. Sie können auf das HTML-Markup der Datei rechnung.

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

Ä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 von IronPDFs HTML-zu-PDF-Rendering, indem Sie sich mit unseremCode-Beispiele abschnitt.

  1. Lesen Siedieses Codebeispiel um zu erfahren, wie Sie das Erscheinungsbild von PDF-Dokumenten während des Konvertierungsprozesses anpassen können.
  2. Erfahren Sie, wie Sie PDF-Dateien mit personalisiertenkopfzeilen und fußzeilenanpassenrandgrößen undseitenabmessungen, wasserzeichen hinzufügenund mehr.
  3. Erforschen Sie außerdem Techniken fürextrahieren von Text, optimierung der Dateigrößenund programmatischdrucken von PDFs.