HTML vers PDF en Java

Chaknith Bin
Chaknith Bin
décembre 28, 2022
Mise à jour décembre 10, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Ce tutoriel explique aux développeurs Java comment utiliser la bibliothèque IronPDF pour convertir le contenu HTML en documents PDF (format de document portable) pixel-perfect.

*IronPDF est un convertisseur PDF complet et une bibliothèque de traitement des PDF. IronPDF est disponible pour les langages de programmation .NET et Java. Ce tutoriel couvre l'utilisation de la bibliothèque pour convertir du contenu HTML (fichiers, balisage, etc.) dans des applications Java. Le tutoriel pour convertir HTML en PDF dans les applications .NET est disponible dans le tutoriel HTML en PDF .NET.


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 Java

Il existe deux façons d'intégrer la bibliothèque IronPDF dans un projet Java :

  1. Ajouter IronPDF for Java comme dépendance dans un projet Java configuré par Maven

  2. Téléchargez le fichier JAR IronPDF et ajoutez-le manuellement au chemin de classe du projet.

    La section suivante présente brièvement les deux méthodes d'installation.

Option 1 : Installer IronPDF en tant que dépendance Maven

Pour installer IronPDF dans un projet Java à l'aide de Maven, ajoutez les artefacts suivants à la section des dépendances du fichier pom.xml du projet Java.

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>com.ironsoftware</artifactId>
   <version>2025.3.6</version>
</dependency>

Le premier artefact fait référence à la dernière version de la bibliothèque IronPDF. Le deuxième artefact fait référence à une implémentation [SL4J](https://www.slf4j.org/" target="_blank" rel="nofollow noopener noreferrer). Cette dépendance est nécessaire pour permettre au moteur de rendu d'IronPDF de générer des messages de journalisation pendant l'exécution. Les ingénieurs logiciels peuvent remplacer cette dépendance par d'autres fournisseurs de journalisation (tels que [Logback](https://logback.qos.ch/" target="_blank" rel="nofollow noopener noreferrer) et [Log4J](https://logging.apache.org/log4j/2.x/" target="_blank" rel="nofollow noreferrer noopener)); ou l'omettre complètement s'ils n'ont pas besoin ou envie de se loguer.

Exécutez la commande mvn install dans un terminal au niveau du répertoire racine du projet Java pour télécharger les bibliothèques précédemment mentionnées.

Option 2 : Installer manuellement le JAR IronPDF

Les développeurs qui préfèrent ne pas utiliser Maven ou tout autre système de gestion des dépendances devront télécharger le fichier JAR de la bibliothèque IronPDF (et l'implémentation optionnelle [SL4J](https://mvnrepository.com/artifact/org.slf4j/slf4j-simple" target="_blank" rel="nofollow noopener noreferrer)) et l'ajouter manuellement au chemin de classe de leur projet.

Téléchargez le fichier JAR de IronPDF directement depuis Téléchargement du JAR IronPDF (ou depuis le référentiel Maven).


Guide pratique et exemples de code

2. Conversion de HTML en PDF

Cette section présente les capacités phares d'IronPDF en matière de rendu HTML vers PDF.

La classe PdfDocument est le point d'entrée pour toutes les fonctionnalités de rendu et de manipulation de documents PDF de IronPDF. La classe comprend un ensemble de méthodes robustes pour convertir des documents HTML en documents PDF dans les trois cas d'utilisation suivants : conversion à partir d'une chaîne de caractères ou d'un marquage HTML, conversion à partir d'un fichier HTML et conversion à partir d'une URL. Cette section aborde brièvement chacun de ces cas d'utilisation et propose des liens vers des contenus complémentaires pour obtenir plus d'informations.

2.1 Importer le paquetage IronPDF

Tous les composants de conversion et de traitement d'IronPDF sont contenus dans le package com.ironsoftware.ironpdf.

Incluez l'instruction d'importation suivante en haut des fichiers source Java (là où IronPDF sera utilisé) pour rendre ces composants accessibles au code source de l'application.

// Import statement for IronPDF for Java
import com.ironsoftware.ironpdf.*;
JAVA

2.2. Définir la clé de licence (facultatif)

L'utilisation d'IronPDF for Java est gratuite. Toutefois, pour les utilisateurs gratuits, il apposera une marque d'eau en arrière-plan en mosaïque sur les documents PDF (comme indiqué dans l'image ci-dessous).

Html To Pdf 23 related to 2.2. Définir la clé de licence (facultatif)

Obtenez une clé de licence sur ironpdf.com/java/licensing/ pour convertir et manipuler des documents PDF sans filigrane.

Pour utiliser IronPDF afin de générer des PDF sans filigrane, la bibliothèque doit utiliser une clé de licence valide. La ligne de code ci-dessous configure la bibliothèque avec une clé de licence.

// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

La clé de licence doit être définie avant de générer des fichiers PDF ou de personnaliser le contenu des fichiers. Nous vous recommandons d'appeler la méthode setLicenseKey avant toutes les autres lignes de code.

Achetez une clé de licence sur la page de licence d'IronPDF, ou contactez-nous pour obtenir une clé de licence d'essai gratuite.

2.3 Définir l'emplacement du fichier journal (facultatif)

Par défaut (et en supposant qu'un fournisseur SLF4J est installé), IronPDF génère des messages de journal dans un fichier texte appelé IronPdfEngine.log situé dans le répertoire racine de l'application Java.

Pour spécifier un nom et un emplacement différents pour le fichier journal, utilisez la méthode Settings.setLogPath :

// Set a log path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
JAVA

Veuillez noter : Settings.setLogPath doit être appelé avant d'utiliser toutes les méthodes de conversion et de manipulation PDF.

2.4. Création d'un PDF à partir d'une chaîne HTML

PdfDocument.renderHtmlAsPdf convertit une chaîne de contenu HTML en un document PDF.

L'exemple de code suivant utilise un seul élément de titre pour générer un nouveau fichier.

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
JAVA
Html To Pdf 5 related to 2.4. Création d'un PDF à partir d'une chaîne HTML

Convertissez le balisage HTML en fichier PDF en utilisant PdfDocument.renderHtmlAsPdf. Cette méthode peut générer des documents PDF en utilisant tous les balisages HTML et CSS conformes aux normes W3C.

renderHtmlAsPdf traite tout le contenu HTML, CSS et JavaScript de la même manière que les navigateurs modernes conformes aux normes peuvent le faire. Cela permet aux ingénieurs logiciels de créer des documents PDF qui ressemblent exactement à ce qui apparaît dans un navigateur web.

La méthode renderHtmlAsPdf peut utiliser des images, des feuilles de style et des scripts situés dans des dossiers sur un ordinateur ou sur un lecteur réseau. L'exemple suivant produit un document PDF à partir de HTML qui référence un fichier CSS et une image situés dans un dossier assets :

String 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/java/"><img src='assets/logo.png' /></a></body></html>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs("output.pdf");
JAVA

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

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

PdfDocument.renderHtmlAsPdf peut rendre tous types d'éléments de médias riches. Si cela s'affiche dans Chrome, alors renderHtmlAsPdf le rendra !

Un second argument (optionnel) de renderHtmlAsPdf permet aux développeurs de spécifier un chemin de base à partir duquel référencer les ressources web. Ce chemin peut être un répertoire du système de fichiers local ou même un chemin URL.

En savoir plus sur la méthode renderHtmlAsPdf à partir de cet exemple de code sur l'utilisation de HTML pour créer un PDF, ou lisez à ce sujet sur la [page de référence API pour la classe PdfDocument](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String).

2.5. Créer un PDF à partir d'une URL

Les développeurs peuvent convertir des pages Web en ligne en documents PDF en utilisant la méthode PdfDocument.renderUrlAsPdf d'IronPDF.

L'exemple suivant rend l'article de Wikipédia au format PDF.

PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
JAVA

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

La bibliothèque Java IronPDF peut convertir le contenu HTML contenu dans des pages Web hébergées en ligne. Utilisez la méthode PdfDocument.renderUrlAsPdf pour y parvenir.

En savoir plus sur la conversion de pages Web en contenu PDF avec cet exemple de code pour convertir une URL en PDF.

2.6. Création d'un PDF à partir d'un fichier HTML

IronPDF peut également convertir un document HTML stocké sur un système de fichiers local directement dans son format PDF équivalent.

L'exemple de code suivant utilise [cette facture comme démonstration concrète](https://codepen.io/tjoen/pen/wvgvLX" target="_blank" rel="nofollow noopener noreferrer) de la capacité d'IronPDF à convertir des fichiers HTML.

Le balisage HTML de la facture est reproduit ici pour plus de 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 le fichier HTML a été enregistré dans un dossier appelé factures avec son fichier CSS et son fichier JavaScript. Nous pouvons utiliser IronPDF pour convertir le fichier HTML comme suit :

PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
JAVA

Comme dans les exemples de conversion de chaînes HTML en PDF, IronPDF résout correctement toutes les URL relatives d'un document HTML en fonction de leur chemin d'accès sur le système de fichiers. Par conséquent, le fichier PDF produit dans cet exemple est capable de capturer parfaitement les influences visuelles que les feuilles de style et les scripts référencés auraient normalement sur une page web.

3. Pour en savoir plus

Nous n'avons fait qu'effleurer les capacités de rendu HTML vers PDF d'IronPDF.

Approfondissez votre compréhension de l'utilisation du convertisseur HTML en PDF pour le développement Java en utilisant les exemples de code sélectionnés présentés dans notre section Exemples de Code.

  1. Lisez cet exemple de code pour les paramètres de génération de PDF pour apprendre à personnaliser l'apparence d'un document PDF pendant le processus de conversion.

  2. Générez des fichiers PDF avec en-têtes et pieds de page personnalisés, tailles de marge, dimensions des pages, filigranes, et bien plus encore.

  3. Extraire le contenu PDF (extraction de texte des PDF et extraction d'images des PDF) à partir de documents, optimiser la taille des fichiers avec la compression PDF, et imprimer des PDF par programmation avec les capacités d'IronPrint.

    Étudiez la page de référence de l'API IronPDF Java sur la classe PdfDocument pour un contrôle encore plus grand sur le rendu de HTML en PDF.

Regarder la vidéo du tutoriel HTML vers PDF


Tutoriel Accès rapide

Cps Intellij related to Tutoriel Accès rapide

Télécharger ce tutoriel sous forme de code source Java

Le code source complet HTML vers PDF Java de ce tutoriel peut être téléchargé gratuitement sous la forme d'un projet IntelliJ zippé.

Télécharger

Explorer ce tutoriel sur GitHub

Le code source de ce projet est disponible sur GitHub.

Utilisez ce code comme un moyen facile d'être opérationnel en quelques minutes. Le projet est enregistré en tant que projet IntellJ IDEA, mais peut être importé dans d'autres IDE Java populaires.

Java HTML vers PDF
Github Icon related to Tutoriel Accès rapide
Documentation related to Tutoriel Accès rapide

Voir la référence de l'API

Explorez la référence API d'IronPDF, qui décrit en détail toutes les fonctionnalités, les espaces de noms, les classes, les méthodes, les champs et les énums d'IronPDF.

Voir la référence de l'API
Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.