HTML vers PDF : Python

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

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


Pour commencer

Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

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

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.

Visiter page d'autorisation pour obtenir votre clé de licence et profiter de PDF sans filigrane.

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

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
PYTHON

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")
PYTHON
Html To Pdf 5 related to 2.4. Création d'un PDF à partir d'une chaîne HTML

Convertir le balisage HTML en fichier PDF à l'aide de la fonction RenderHtmlAsPdf méthode. Cette méthode permet de générer des PDF en utilisant toutes les balises HTML et CSS valides et conformes au W3C.

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

Le résultat du code ci-dessus est illustré dans l'image ci-dessous.

Html To Pdf Html String To Pdf related to 2.4. Création d'un PDF à partir d'une chaîne HTML

RenderHtmlAsPdf est capable de rendre différents types de contenu HTML. Si elle peut être affichée dans Chrome, alors RenderHtmlAsPdf le rendra !

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

Le format du fichier PDF généré est indiqué ci-dessous.

Html To Pdf 7 related to 2.5. Créer un PDF à partir d'une URL

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

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.

  1. Lirecet exemple de code pour découvrir comment personnaliser l'apparence des documents PDF au cours du processus de conversion.

  2. 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.

  3. En outre, vous explorerez les techniques pourextraction de texte, optimisation de la taille des fichierset de manière programmatiqueimpression de PDF.