HTML vers PDF : Python
Ce guide fournit aux développeurs Python des instructions pas à pas sur l'utilisation de la bibliothèque IronPDF pour convertir du contenu HTML en format PDF de haute qualité(format de document portable) des dossiers.
IronPDF est une bibliothèque complète de conversion et de traitement de fichiers PDF qui prend en charge de nombreux langages de programmation, notamment.NET, JavaetPython les langages de programmation. Ce tutoriel se concentre spécifiquement sur l'utilisation d'IronPDF dans des scripts Python pour convertir du contenu HTML, que ce soit sous forme de fichiers ou de balisage.
Pour un tutoriel séparé sur la manière de convertir HTML en PDF dans les applications .NET, veuillez vous référer à ce qui suitici.
Vue d'ensemble
Comment convertir HTML en PDF en Python
- Installer la bibliothèque Python nécessaire à la conversion de HTML en PDF
- Utiliser le
RenderHtmlAsPdf
pour convertir une chaîne HTML en un document PDF - Générer des fichiers PDF directement à partir de l'URL d'un site web en Python
- Convertir les fichiers HTML en fichiers PDF à l'aide de la fonction
RenderHtmlFileAsPdf
méthode - Enregistrer le PDF généré dans un nouveau fichier
Pour commencer
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.
1. Installation de la bibliothèque IronPDF PDF pour Python
Pour installer la bibliothèque IronPDF pour Python, vous pouvez utiliser le gestionnaire de paquets populaire, pip. Il suffit d'exécuter la commande suivante :
pip install ironpdf
[{t :(Pour installer une version spécifique d'IronPDF, veuillez utiliser la syntaxe suivante : "==2023.x.x". Par exemple, vous pouvez exécuter la commande "pip install IronPDF==2023.x.x".)}]
[{i :(IronPDF Python s'appuie sur la bibliothèque IronPDF for .NET, plus précisément .NET 6.0, comme technologie sous-jacente. Il est donc nécessaire d'avoir le.NET 6.0 SDK installé sur votre machine afin d'utiliser IronPDF Python.)}]
Guide pratique et exemples de code
2. Convertir HTML en PDF
Dans la section suivante, nous allons nous pencher sur les impressionnantes capacités de rendu d'IronPDF pour la conversion de HTML en PDF.
Le composant principal pour le rendu des documents PDF est la classe ChromePdfRenderer
. En outre, la classe PdfDocument
offre une série de fonctions de manipulation. IronPDF fournit des méthodes fiables pour convertir le contenu HTML en documents PDF, répondant à trois scénarios clés :
- Convertir les chaînes de caractères HTML/marques en PDF
- Convertir des fichiers HTML/zips en PDF
Convertir des URL en PDF
Cette section fournit un aperçu concis de chaque cas d'utilisation, accompagné de ressources supplémentaires pour plus de détails.
2.1 Importer le paquetage IronPDF
Pour importer IronPDF, incluez les instructions d'importation suivantes au début des fichiers source où IronPDF sera utilisé :
# Import statements for IronPDF Python
from ironpdf import *
2.2. Définir la clé de licence (facultatif)
IronPDF for Python est gratuit, mais il ajoute un filigrane en arrière-plan aux PDF pour les utilisateurs gratuits.
Pour générer des PDF sans filigrane à l'aide d'IronPDF, il est nécessaire de fournir une clé de licence valide à la bibliothèque. L'extrait de code suivant montre comment configurer la bibliothèque avec une clé de licence :
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Assurez-vous que la clé de licence est définie avant de générer des fichiers PDF ou de modifier leur contenu. Il est recommandé d'appeler la méthode LicenseKey
avant toute autre ligne de code.
Vous pouvezacheter une clé de licence à partir de notre page sur les licences ou contactez-nous pourobtenir une clé de licence d'essai gratuite.
2.3 Définir l'emplacement du fichier journal (facultatif)
IronPDF peut générer des messages de journal dans un fichier texte nommé Default.log dans le même répertoire que votre script Python.
Si vous souhaitez personnaliser le nom et l'emplacement du fichier journal, vous pouvez définir la propriété LogFilePath
en utilisant l'extrait de code ci-dessous :
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
A noter
Logger.LogFilePath
doit être appelé avant d'utiliser toute méthode de conversion et de manipulation de PDF.2.4. Création d'un PDF à partir d'une chaîne HTML
La méthode RenderHtmlAsPdf
convertit une chaîne HTML en un document au format PDF.
L'extrait de code ci-dessous montre comment générer un fichier PDF à partir d'une chaîne HTML comportant un seul élément de titre :
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")
La méthode RenderHtmlAsPdf
traite le HTML, le CSS et le JavaScript de la même manière que les navigateurs modernes, ce qui garantit un rendu précis du contenu. Cette fonction permet aux ingénieurs logiciels de créer des PDF qui ressemblent beaucoup à leurs équivalents dans le navigateur web.
En outre, la méthode RenderHtmlAsPdf
peut gérer des ressources externes telles que des images, des feuilles de style et des scripts situés dans des dossiers locaux ou du réseau. L'exemple suivant montre la création d'un document PDF à partir de HTML qui fait référence à un fichier CSS et à une image stockée dans un dossier 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")
Le résultat du code ci-dessus est illustré dans l'image ci-dessous.
En outre, les développeurs ont la possibilité de fournir un deuxième argument à la méthode RenderHtmlAsPdf
, ce qui leur permet de spécifier un chemin de base pour référencer les ressources web. Ce chemin peut pointer vers un répertoire local du système de fichiers ou même vers un chemin URL.
Pour mieux comprendre comment utiliser la méthode RenderHtmlAsPdf
, vous pouvez vous référer àcet exemple de code ou consultez les pages de référence de l'API pour obtenir des informations plus détaillées.
2.5. Créer un PDF à partir d'une URL
Pour convertir les URL de sites web en documents PDF, les développeurs peuvent utiliser la méthode RenderUrlAsPdf
fournie par IronPDF.
Voici un exemple qui illustre la transformation d'un article de Wikipedia en contenu 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")
Le format du fichier PDF généré est indiqué ci-dessous.
Pour plus d'informations, vous pouvez consulterexemple de code démontrant comment convertir une page web en PDF.
2.6. Création d'un PDF à partir d'un fichier HTML
IronPDF permet de convertir des fichiers HTML en PDF et de les stocker sur un système de fichiers local. Il rend directement le contenu HTML dans son format PDF équivalent.
Pour une démonstration concrète de cette fonctionnalité, l'exemple de code suivant illustre la conversion d'un fichier HTML de facture. Vous pouvez accéder au balisage HTML du facture.
Ce balisage HTML est fourni pour votre commodité :
<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>
Supposons que nous ayons un fichier HTML local ainsi que ses fichiers CSS et JavaScript associés enregistrés dans un dossier nommé "factures". Nous pouvons utiliser IronPDF pour convertir l'exemple de fichier HTML en PDF à l'aide du code Python suivant :
# 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")
Comme pour la conversion de chaînes HTML en PDF, IronPDF résout automatiquement les URL relatives dans l'exemple de fichier HTML, ce qui garantit que les feuilles de style et les scripts référencés sont correctement appliqués au document PDF résultant. Cela permet de s'assurer que l'aspect visuel de la page web est fidèlement reproduit dans le fichier PDF.
3. Pour en savoir plus
Explorez les capacités étendues du rendu HTML vers PDF d'IronPDF en vous plongeant dans nosExemples de codes section.
Lirecet exemple de code pour découvrir comment personnaliser l'apparence des documents PDF au cours du processus de conversion.
Apprenez à générer des fichiers PDF avec desles en-têtes et les pieds de page, ajustertaille des marges etdimensions des pages, ajouter des filigraneset bien d'autres choses encore.
En outre, vous explorerez les techniques pourextraction de texte, optimisation de la taille des fichierset de manière programmatiqueimpression de PDF.