How to Convert HTML to PDF using IronPDF for Python

HTML do PDF: Python

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

Niniejszy przewodnik zawiera szczegółowe instrukcje dla programistów języka Python dotyczące wykorzystania biblioteki IronPDF do konwersji treści HTML na pliki w formacie PDF (Portable Document Format) o wysokiej jakości.

IronPDF to kompleksowa biblioteka do konwersji i przetwarzania plików PDF, obsługująca wiele języków programowania, w tym .NET, Java i Python. Ten samouczek skupia się konkretnie na użyciu IronPDF w skryptach Pythona do konwersji treści HTML, niezależnie od tego, czy ma ona formę plików, czy znaczników.

Dostępny jest również osobny samouczek dotyczący konwersji HTML do formatu PDF w aplikacjach .NET.


Przegląd


Pierwsze kroki

1. Instalacja biblioteki IronPDF PDF dla języka Python

Aby zainstalować bibliotekę IronPDF for Python, można użyć popularnego menedżera pakietów pip. Wystarczy wykonać następujące polecenie:

pip install ironpdf

PoradyAby zainstalować konkretną wersję IronPdf, użyj poniższej składni: ==2023.x.x. Na przykład można uruchomić polecenie:

pip install ironpdf==2023.x.x
pip install ironpdf==2023.x.x
SHELL

Zwróć uwagęIronPDF for Python opiera się na bibliotece IronPDF .NET, a konkretnie na platformie .NET 6.0, jako swojej technologii bazowej. Dlatego też, aby korzystać z IronPDF for Python, konieczne jest zainstalowanie na komputerze zestawu SDK .NET 6.0.


Przewodnik krok po kroku i przykłady kodu

2. Konwersja HTML do PDF

W następnej sekcji przyjrzymy się imponującym możliwościom renderowania IronPDF w zakresie konwersji HTML do PDF.

Głównym komponentem do renderowania dokumentów PDF jest klasa ChromePdfRenderer. Dodatkowo, klasa PdfDocument oferuje wiele funkcji manipulacyjnych. IronPDF zapewnia niezawodne metody konwersji zawartości HTML na dokumenty PDF, dostosowując się do three key scenarios:

  • Konwersja ciągów znaków/znaczników HTML do formatu PDF
  • Konwersja plików HTML/ZIP do formatu PDF
  • Konwersja adresów URL do formatu PDF

W tej sekcji przedstawiono zwięzły przegląd każdego przypadku użycia wraz z dodatkowymi zasobami zawierającymi szczegółowe informacje.

2.1 Importuj pakiet IronPDF

Aby zaimportować IronPDF, należy umieścić następującą instrukcję importu na początku plików źródłowych, w których będzie wykorzystywany IronPDF:

# Import statement for IronPDF for Python
from ironpdf import *
# Import statement for IronPDF for Python
from ironpdf import *
PYTHON

2.2 Ustaw klucz licencyjny (opcjonalnie)

IronPDF for Python jest darmowy, ale dodaje kafelkowy znak wodny w tle do plików PDF dla darmowych użytkowników.

Odwiedź stronę licencyjną, aby uzyskać klucz licencyjny i cieszyć się plikiem PDF bez znaku wodnego.

Aby generować pliki PDF bez znaków wodnych przy użyciu IronPDF, konieczne jest podanie bibliotece prawidłowego klucza licencyjnego. Poniższy fragment kodu pokazuje, jak skonfigurować bibliotekę za pomocą klucza licencyjnego:

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

Upewnij się, że klucz licencyjny jest ustawiony przed wygenerowaniem plików PDF lub modyfikacją ich zawartości. Zaleca się wywołanie metody LicenseKey przed innymi liniami kodu. Klucz licencyjny można nabyć na naszej stronie licencyjnej lub skontaktować się z nami w celu uzyskania bezpłatnej licencji probnej.

2.3 Ustaw lokalizację pliku dziennika (opcjonalnie)

IronPDF może generować komunikaty dziennika do pliku tekstowego o nazwie Default.log w tym samym katalogu co skrypt Python.

Jeśli chcesz dostosować nazwę i lokalizację pliku dziennika, możesz ustawić właściwość LogFilePath, używając poniższego fragmentu kodu:

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

Logger.LogFilePath powinien być wywołany przed użyciem jakichkolwiek metod konwersji i manipulacji PDF.

2.4 Tworzenie pliku PDF z ciągu znaków HTML

Metoda RenderHtmlAsPdf konwertuje łańcuch znaków HTML na dokument w formacie PDF.

Poniższy fragment kodu pokazuje, jak wygenerować plik PDF z ciągu znaków HTML zawierającego pojedynczy element nagłówka:

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")
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
Html To Pdf 5 related to 2.4 Tworzenie pliku PDF z ciągu znaków HTML

Metoda RenderHtmlAsPdf umożliwia renderowanie różnych typów treści HTML. Jeśli dana treść może być wyświetlona w przeglądarce Chrome, to RenderHtmlAsPdf ją wyrenderuje!

Metoda RenderHtmlAsPdf przetwarza HTML, CSS i JavaScript w taki sam sposób, jak robią to nowoczesne przeglądarki, zapewniając dokładne renderowanie treści. Ta funkcja umożliwia inżynierom oprogramowania tworzenie plików PDF, które bardzo przypominają ich odpowiedniki w przeglądarkach internetowych.

Ponadto metoda RenderHtmlAsPdf może obsługiwać zasoby zewnętrzne, takie jak obrazy, arkusze stylów i skrypty znajdujące się w lokalnych lub sieciowych folderach. Poniższy przykład demonstruje tworzenie dokumentu PDF z HTML, który odnosi się do pliku CSS i obrazu przechowywanego w folderze assets:

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")
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
Html To Pdf Html String To Pdf related to 2.4 Tworzenie pliku PDF z ciągu znaków HTML

Metoda RenderHtmlAsPdf umożliwia renderowanie różnych typów treści HTML. Jeśli dana treść może być wyświetlona w przeglądarce Chrome, to RenderHtmlAsPdf ją wyrenderuje!

Dodatkowo programiści mają możliwość podania drugiego argumentu do metody RenderHtmlAsPdf, co pozwala im określić ścieżkę bazową do odwoływania się do zasobów internetowych. Ścieżka ta może wskazywać na lokalny katalog w systemie plików, a nawet na ścieżkę URL.

Aby lepiej zrozumieć, jak używać metody RenderHtmlAsPdf, możesz odnieść się do tego przykładu kodu lub skonsultować strony Dokumentacji API dla bardziej szczegółowych informacji.

2.5 Tworzenie pliku PDF z adresu URL

Aby przekształcić URL strony internetowej na dokumenty PDF, deweloperzy mogą wykorzystać metodę RenderUrlAsPdf dostarczoną przez IronPDF.

Oto przykład pokazujący renderowanie artykułu z Wikipedii do formatu PDF.

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")
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
Html To Pdf 7 related to 2.5 Tworzenie pliku PDF z adresu URL

Więcej informacji można znaleźć w przykładowym kodzie pokazującym, jak przekonwertować stronę internetową do formatu PDF.

2.6 Tworzenie pliku PDF z pliku HTML

IronPDF umożliwia konwersję plików HTML do formatu PDF i przechowywanie ich w lokalnym systemie plików. Bezpośrednio renderuje zawartość HTML do równoważnego formatu PDF.

For a real-world demonstration of this functionality, the following code example showcases the conversion of an invoice HTML file. You can access the HTML markup of the invoice.

Poniższy kod HTML został zamieszczony dla Państwa wygody:

<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

Załóżmy, że mamy lokalny plik HTML wraz z powiązanymi plikami CSS i JavaScript zapisanymi w folderze o nazwie "invoices". Możemy użyć IronPDF do konwersji przykładowego pliku HTML do formatu PDF za pomocą następującego kodu w języku Python:

from ironpdf import *

# 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")
from ironpdf import *

# 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

Podobnie jak w przypadku konwersji ciągów HTML do formatu PDF, IronPDF automatycznie rozpoznaje względne adresy URL w przykładowym pliku HTML, zapewniając, że wszelkie arkusze stylów i skrypty, do których odwołuje się plik, zostaną poprawnie zastosowane w wynikowym dokumencie PDF. Dzięki temu wygląd strony internetowej zostanie dokładnie odzwierciedlony w pliku PDF.

3. Dalsza lektura

Zapoznaj się z rozbudowanymi możliwościami renderowania HTML do PDF w IronPDF, zaglądając do naszej sekcji Przykłady kodu.

  1. Przeczytaj ten przykład kodu, aby dowiedzieć się, jak dostosować wygląd dokumentów PDF podczas procesu konwersji.
  2. Dowiedz się, jak generować pliki PDF ze spersonalizowanymi nagłówkami i stopkami, dostosowywać rozmiary marginesów i wymiary stron, dodawać znaki wodne i nie tylko.
  3. Dodatkowo zapoznaj się z technikami wyodrębniania tekstu, optymalizacji rozmiarów plików oraz programowego drukowania plików PDF.

Pobierz oprogramowanie.

Często Zadawane Pytania

How can I convert HTML to PDF using Python?

You can use IronPDF's RenderHtmlAsPdf method to convert HTML strings into PDF documents in Python. This method ensures that the HTML, including CSS and JavaScript, is accurately rendered into a high-quality PDF.

What library supports HTML to PDF conversion in Python?

IronPDF is a powerful library that supports HTML to PDF conversion in Python. It provides various methods to convert HTML strings, URLs, and files into PDF documents while preserving formatting.

How do I install IronPDF for HTML to PDF conversion in Python?

To install IronPDF for Python, use the command pip install ironpdf in your terminal. Note that you need to have the .NET 6.0 SDK installed, as IronPDF depends on it.

Can I convert a webpage URL to PDF in Python?

Yes, you can use IronPDF's RenderUrlAsPdf method to convert a webpage URL into a PDF document. This feature allows you to capture and convert the content of live web pages directly.

How does IronPDF handle external resources during conversion?

IronPDF can process HTML files that include external resources such as images, stylesheets, and scripts. It resolves relative URLs to ensure these resources are correctly incorporated into the PDF.

Is it possible to customize PDF headers and footers using Python?

Yes, IronPDF allows you to add custom headers and footers to your PDF documents. This can be done by adjusting the PdfDocument properties to suit your specific formatting needs.

How can I remove watermarks from PDFs created with IronPDF?

To remove watermarks from PDFs generated by IronPDF, you need to set a valid license key before processing the PDF. This ensures the PDFs are created without any default watermarks.

What are some advanced features of IronPDF for HTML to PDF conversion?

IronPDF offers advanced features like setting custom page margins, adjusting dimensions, adding watermarks, optimizing file sizes, and extracting text. These features enhance the flexibility and utility of the library.

Where can I find examples of using IronPDF for HTML to PDF conversion?

You can find various examples and detailed code snippets in the 'Code Examples' section on the IronPDF website, which provides insights into using IronPDF's features effectively.

What is the main class used in IronPDF for rendering PDFs?

The ChromePdfRenderer class is the primary class used in IronPDF to render PDFs. It provides reliable methods to convert HTML, handle external resources, and ensure accurate rendering similar to modern browsers.

Is IronPDF compatible with .NET 10?

Yes — IronPDF is fully compatible with .NET 10, just as it is with earlier versions like .NET 6, 7, 8, and 9. It works out of the box with .NET 10 projects, irrespective of platform (Windows, Linux, etc.), and supports the latest API stack with no special workarounds needed.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.