HTML do PDF: Python
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
Jak przekonwertować HTML na PDF w języku Python

- Zainstaluj bibliotekę Python niezbędną do konwersji HTML na PDF
- Użyj metody
RenderHtmlAsPdf,aby przekonwertować ciąg znaków HTML na dokument PDF - Generowanie plików PDF bezpośrednio z adresu URL strony internetowej w języku Python
- Konwertuj pliki HTML na pliki PDF za pomocą metody
RenderHtmlFileAsPdf - Zapisz wygenerowany plik PDF jako nowy plik
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
==2023.x.x. Na przykład można uruchomić polecenie:pip install ironpdf==2023.x.xpip install ironpdf==2023.x.xPrzewodnik 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 *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"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.AllLogger.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")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")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")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>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")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.
- Przeczytaj ten przykład kodu, aby dowiedzieć się, jak dostosować wygląd dokumentów PDF podczas procesu konwersji.
- 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.
- 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.










