Comment fusionner deux fichiers PDF à l'aide de Java

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

La fusion de documents PDF en un seul fichier est une exigence fréquente dans les pipelines de gestion de documents. La consolidation des rapports mensuels, l'assemblage de formulaires en plusieurs parties et le regroupement des factures sont autant de scénarios courants. IronPDF for Java réduit cette opération à un simple appel de méthode : PdfDocument.merge(). Transmettez-lui au moins deux documents chargés, et vous obtiendrez un seul PDF combiné dans lequel la mise en forme, les polices et les images intégrées seront conservées exactement telles quelles.

Ce guide présente les quatre scénarios de fusion les plus courants : la combinaison de fichiers PDF générés dynamiquement, la fusion de fichiers existants à partir du disque, la gestion de lots plus volumineux à l'aide d'une approche basée sur des listes, et le contrôle de l'ordre des pages dans le document final.

Guide de démarrage rapide : Fusionner des PDF en Java

  1. Ajoutez la dépendance IronPDF à votre Maven pom.xml
  2. Importer com.ironsoftware.ironpdf.PdfDocument
  3. Charger les fichiers source à l'aide de PdfDocument.fromFile()
  4. Appelez PdfDocument.merge(pdf1, pdf2) pour générer un document combiné
  5. Économisez le résultat avec merged.saveAs()

```java {title="Quickstart: Basic PDF Merge"} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/quickstart-merge.java import com.ironsoftware.IronPdf.PdfDocument; import java.nio.file.Paths;

// Charger deux documents PDF existants depuis le disque PdfDocument pdf1 = PdfDocument.fromFile(Paths.get("document1.pdf")); PdfDocument pdf2 = PdfDocument.fromFile(Paths.get("document2.pdf"));

// Fusionner en un seul document ; La mise en forme et les images sont conservées PdfDocument merged = PdfDocument.merge(pdf1, pdf2);

// Enregistrer le PDF combiné sur le disque merged.saveAs(Paths.get("merged-output.pdf"));


<div class="hsg-featured-snippet">
<h3>Workflow minimal (5 étapes)</h3>

1. Ajouter IronPDF en tant que dépendance Maven ou Gradle
2. Importer `com.ironsoftware.ironpdf.PdfDocument`
3. Charger chaque PDF avec `PdfDocument.fromFile(Paths.get("file.pdf"))`
4. Appelez `PdfDocument.merge(pdf1, pdf2)`, ou transmettez un tableau `PdfDocument[]` pour les lots
5. Économisez le résultat fusionné avec `merged.saveAs(Paths.get("output.pdf"))`
</div>

## Quelles sont les conditions préalables pour fusionner des PDF en Java ?

Avant d'écrire le moindre code, assurez-vous que ces quatre conditions sont remplies :

1. **Java 8 ou version ultérieure** installée avec la variable d'environnement `JAVA_HOME` définie. Consultez le [guide de téléchargement et d'installation de Java](https://www.java.com/en/download/help/download_options.html#windows) pour obtenir des instructions spécifiques à la plateforme.
2. **Un IDE Java** (ce guide utilise [JetBrains IntelliJ IDEA](https://www.jetbrains.com/idea/download/#section=windows), bien qu'[Eclipse](https://www.eclipse.org/downloads/) fonctionne tout aussi bien).
3. **Maven ou Gradle** configuré dans votre IDE. Si vous débutez avec Maven, le [guide d'installation de JetBrains Maven](https://www.jetbrains.com/idea/guide/tutorials/marco-codes-maven/installing-maven/) explique la configuration dans IntelliJ.
4. **La bibliothèque IronPDF** a été ajoutée en tant que dépendance du projet. [Le guide d'installation d'IronPDF for Java](https://ironpdf.com/java/docs/) explique les approches Maven et Gradle.

Veuillez noterIronPDF for Java prend en charge Java 8 et les versions ultérieures. Il n'est pas nécessaire de mettre à jour les projets existants vers une version plus récente du JDK pour commencer à l'utiliser.
## Comment installer IronPDF for Java ? IronPDF for Java est distribué via [Maven Central](https://search.maven.org) ; son intégration à votre projet ne nécessite donc que quelques lignes de configuration. Aucun téléchargement manuel de fichiers JAR n'est nécessaire. Ouvrez IntelliJ IDEA et créez un nouveau projet Maven via **Fichier -&gt; Nouveau -&gt; Projet**, en sélectionnant Maven comme système de build. ![Boîte de dialogue ](/static-assets/ironpdf-java/howto/how-to-merge-two-pdf-files-java-tutorial/how-to-merge-two-pdf-files-java-tutorial-1.webp) Donnez un nom au projet et cliquez sur **Terminer**. IntelliJ ouvre automatiquement `pom.xml` une fois la structure du projet générée. ![Boîte de dialogue ](/static-assets/ironpdf-java/howto/how-to-merge-two-pdf-files-java-tutorial/how-to-merge-two-pdf-files-java-tutorial-2.webp) Ajoutez le bloc de dépendances suivant à l'intérieur de la section `<dependencies>` de `pom.xml`. Vérifiez toujours [sur Maven Central la dernière version d'IronPDF](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf) et remplacez la chaîne de version par celle en vigueur. ```xml {title=&quot;pom.xml: IronPDF Dependency&quot;} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/pom-dependency.xml <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>2024.9.1</version> </dependency>

IntelliJ IDEA affichant le fichier pom.xml Maven avec la configuration du projet IronPDF et les paramètres du compilateur Java 10

Après avoir économisé pom.xml, une petite icône de synchronisation apparaît en haut à droite de l'éditeur. Cliquez ici pour lancer le téléchargement de la dépendance Maven. En fonction de votre vitesse de connexion, cela prend entre 15 secondes et quelques minutes, et télécharge IronPDF ainsi que toutes les dépendances transitives requises.

Fichier pom.xml Maven montrant la configuration de la dépendance Java d'IronPDF avec les balises groupId, artifactId et version

ConseilsLes utilisateurs de Gradle peuvent ajouter implementation 'com.ironsoftware:ironpdf:2024.9.1' à leur bloc de dépendances build.gradle à la place. Le même artefact Maven Central fonctionne pour les deux systèmes de compilation.

Comment créer et fusionner de nouveaux documents PDF ?

Lorsque le contenu source est généré au moment de l'exécution (à partir de modèles HTML, d'enregistrements de base de données ou de saisies utilisateur), le processus consiste à rendre chaque élément sous la forme PdfDocument dans un premier temps, puis à les fusionner.

PdfDocument.renderHtmlAsPdf() convertit une chaîne HTML en PDF en mémoire. Chaque appel produit un objet document indépendant qui peut être transmis directement à merge() sans écrire de fichiers intermédiaires sur le disque.

Rendu des sections HTML avant la fusion

L'exemple ci-dessous affiche deux chaînes HTML distinctes en mémoire et les combine en un seul document. Ce modèle convient particulièrement aux générateurs de rapports, aux Builders de factures et à tout système où le contenu est assemblé par programmation à partir de modèles ou de lignes de base de données.

```java {title="Fusionner des PDF générés dynamiquement"} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-html-pdfs.java import com.ironsoftware.IronPdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths;

public class Main { public static void main(String[] args) throws IOException { // Contenu HTML pour chaque section du document String htmlA = "

First part of the report.

"; String htmlB = "

Second part of the report.

";

    // Rendre chaque chaîne HTML en PDF en mémoire -- aucune écriture sur le disque n&#x27;est nécessaire
    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);

    // Fusionner les deux documents en un seul fichier PDF combiné
    PdfDocument merged = PdfDocument.merge(pdfA, pdfB);

    // Économisez le résultat fusionné
    merged.saveAs(Paths.get(&quot;assets/merged.pdf&quot;));
}

}


Le résultat fusionné concatène les pages dans l'ordre des arguments : les pages `pdfA` apparaissent avant les pages `pdfB`. Pour une présentation complète du moteur de rendu HTML, consultez le [tutoriel IronPDF HTML vers PDF for Java](https://ironpdf.com/java/tutorials/html-to-pdf/).

![Visionneuse PDF affichant des documents fusionnés avec succès - premier PDF à gauche, deuxième PDF à droite avec les commandes de navigation](/static-assets/ironpdf-java/howto/how-to-merge-two-pdf-files-java-tutorial/how-to-merge-two-pdf-files-java-tutorial-5.webp)

ImportantL'appel `renderHtmlAsPdf()` utilise un moteur de rendu basé sur Chromium. Le CSS complet, les polices Web et les images en ligne sont tous pris en charge — le résultat correspond à ce qu'afficherait un navigateur.
## Comment fusionner des fichiers PDF existants ? Le chargement de fichiers PDF à partir du disque et leur fusion suivent le même schéma, en utilisant `PdfDocument.fromFile()` pour lire chaque fichier en mémoire avant de transmettre les objets à `merge()`. Cette approche convient à tout flux de travail où les documents sources existent déjà : factures numérisées, rapports exportés ou fichiers reçus d'un système externe. IronPDF lit la structure du PDF et fusionne les pages sans modifier les fichiers sources d'origine. ### Chargement et combinaison de fichiers à partir du disque ```java {title=&quot;Fusionner des fichiers PDF existants à partir du disque&quot;} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-existing-files.java import com.ironsoftware.IronPdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws IOException { // Charger deux fichiers PDF existants depuis le disque PdfDocument pdfA = PdfDocument.fromFile(Paths.get(&quot;assets/invoice-january.pdf&quot;)); PdfDocument pdfB = PdfDocument.fromFile(Paths.get(&quot;assets/invoice-february.pdf&quot;)); // Regrouper en un seul document PdfDocument merged = PdfDocument.merge(pdfA, pdfB); // Écrire le résultat fusionné -- les originaux restent inchangés merged.saveAs(Paths.get(&quot;assets/invoices-q1.PDF&quot;)); } }

L'appel merge() produit un nouvel objet PdfDocument ; ni pdfA ni pdfB ne sont modifiés. Pour inverser l'opération (extraire les pages à nouveau), consultez l'exemple de fractionnement de PDF for Java.

Visionneuse PDF affichant un document fusionné avec la page des fonctionnalités du prix et la page d'accueil de Wikipédia, illustrant la fusion réussie des PDF

Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

PdfDocument.fromFile() accepte les fichiers .pdf standard. Pour les documents qui doivent être convertis avant la fusion — tels que les fichiers HTML, les fichiers image ou d'autres formats —, utilisez d'abord la méthode de rendu appropriée (renderHtmlAsPdf(), renderUrlAsPdf()) pour produire un PdfDocument, puis transmettez cet objet à merge().

ConseilsLes chemins transmis à fromFile() peuvent être absolus ou relatifs au répertoire de travail. L'utilisation de Paths.get() (à partir de java.nio.file) est l'approche recommandée pour assurer la compatibilité multiplateforme.

Icon Quote related to Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

Ma bibliothèque préférée de ce genre est IronPDF. Elle permet une manipulation rapide et efficace des fichiers PDF. Elle dispose également de nombreuses fonctionnalités précieuses, comme l'exportation au format PDF/A et la signature numérique des documents PDF.

Milan Jovanovic related to Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

Milan Jovanovic

Microsoft MVP

Voir l'étude de cas
Icon Quote related to Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

IronOCR signifie que nous pouvons économiser 40 000 $ par an grâce au traitement manuel, tout en améliorant la productivité et en libérant des ressources pour des tâches à fort impact. Je le recommande vivement.

Brent Matzelle related to Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

Brent Matzelle

Directeur technique, OPYN

Voir l'étude de cas
Icon Quote related to Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.

David Jones related to Quels formats de fichiers la fonction fromFile() accepte-t-elle ?

David Jones

Ingénieur logiciel principal, Agorus Build

Voir l'étude de cas

Comment fusionner plus de deux fichiers PDF ?

PdfDocument.merge() accepte une liste d'arguments de longueur variable ; par conséquent, la fusion de trois ou quatre documents ne diffère pas, d'un point de vue syntaxique, de la fusion de deux documents. Pour les collections de taille dynamique — où le nombre de fichiers PDF est déterminé au moment de l'exécution —, passer un tableau PdfDocument[] est l'approche la plus propre.

Varargs et modèles basés sur des listes

Les deux modèles ci-dessous produisent des résultats identiques. Optez pour l'appel direct avec varargs lorsque le nombre de fichiers est fixe, et pour le modèle " liste vers tableau " lorsque vous construisez la collection par programmation :

```java {title="Fusionner quatre fichiers PDF -- Approches avec varargs et listes"} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-multiple-files.java import com.ironsoftware.IronPdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List;

public class Main { public static void main(String[] args) throws IOException { // Charger quatre fichiers PDF existants PdfDocument pdfA = PdfDocument.fromFile(Paths.get("assets/chapter-1.pdf")); PdfDocument pdfB = PdfDocument.fromFile(Paths.get("assets/chapter-2.pdf")); PdfDocument pdfC = PdfDocument.fromFile(Paths.get("assets/chapter-3.pdf")); PdfDocument pdfD = PdfDocument.fromFile(Paths.get("assets/chapter-4.pdf"));

    // Modèle 1 : appel direct de varargs -- fonctionne bien pour un nombre fixe de fichiers
    PdfDocument merged = PdfDocument.merge(pdfA, pdfB, pdfC, pdfD);
    merged.saveAs(Paths.get(&quot;assets/full-document.pdf&quot;));

    // Modèle 2 : créer d&#x27;abord une liste -- à privilégier lorsque le nombre de fichiers est dynamique
    List<pdfdocument> pdfList = new ArrayList&lt;&gt;();</pdfdocument>
    pdfList.add(pdfA);
    pdfList.add(pdfB);
    pdfList.add(pdfC);
    pdfList.add(pdfD);

    PdfDocument mergedFromList = PdfDocument.merge(
        pdfList.toArray(new PdfDocument[0])
    );
    mergedFromList.saveAs(Paths.get(&quot;assets/full-document-v2.pdf&quot;));
}

}


ImportantL'ordre des pages dans le résultat correspond exactement à l'ordre des arguments. Si l'ordre des documents a de l'importance (par exemple, les chapitres d'un livre ou les sections ordonnées d'un formulaire), triez votre liste avant d'appeler `merge()`.
### Comment analyser un répertoire et fusionner tous les fichiers PDF ? Lorsque l'ensemble des fichiers d'entrée n'est pas connu au moment de la compilation, la lecture des chemins d'accès aux fichiers à partir d'un répertoire constitue une extension naturelle du modèle de liste. L'extrait ci-dessous rassemble tous les fichiers `.pdf` d'un dossier, les trie par nom de fichier et les fusionne dans l'ordre. ```java {title=&quot;Analyser un répertoire et fusionner tous les fichiers PDF&quot;} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-directory-pdfs.java import com.ironsoftware.IronPdf.PdfDocument; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) throws IOException { Path inputDir = Paths.get(&quot;assets/monthly-reports&quot;); // Récupérer tous les fichiers PDF du répertoire, triés par nom de fichier List<path> pdfPaths = Files.list(inputDir)</path> .filter(p -&gt; p.toString().endsWith(&quot;.pdf&quot;)) .sorted(Comparator.comparing(Path::getFileName)) .collect(Collectors.toList()); // Charger chaque fichier dans un PdfDocument List<pdfdocument> documents = new ArrayList&lt;&gt;();</pdfdocument> for (Path path : pdfPaths) { documents.add(PdfDocument.fromFile(path)); } // Fusionner tous les documents et économiser le résultat PdfDocument combined = PdfDocument.merge( documents.toArray(new PdfDocument[0]) ); combined.saveAs(Paths.get(&quot;assets/annual-report.pdf&quot;)); } }

Ce modèle prend en charge toutes les tailles de dossiers. Pour les lots volumineux (plus de 50 fichiers), envisagez de charger et de fusionner par blocs afin de limiter les pics d'utilisation de la mémoire, plutôt que de charger tous les fichiers simultanément.

ConseilsTriez pdfPaths avec un Comparator personnalisé si vos fichiers suivent un schéma de nommage basé sur la date (par exemple, 2024-01.pdf, 2024-02.pdf). Le tri alphabétique fonctionne naturellement pour les numéros de mois complétés par des zéros.

Après la fusion, vous souhaiterez peut-être affiner davantage le document combiné. IronPDF for Java permet d'ajouter des en-têtes et des pieds de page personnalisés, d'appliquer des filigranes et de compresser le fichier final afin de réduire sa taille avant sa livraison.

Quelles sont les prochaines étapes pour la fusion de PDF en Java ?

Ce guide a présenté quatre modèles de fusion avec IronPDF for Java : le rendu de contenu HTML au format PDF avant la fusion, le chargement et la combinaison de fichiers existants à partir du disque, la gestion de lots de documents de longueur variable à l'aide d'une liste, et l'analyse d'un répertoire pour fusionner automatiquement tous les PDF. Dans tous les cas, PdfDocument.merge() préserve la mise en forme de la source : les polices, les images et la mise en page sont conservées dans le résultat sans aucune configuration supplémentaire.

Pour continuer à découvrir les possibilités d'IronPDF for Java, consultez le tutoriel sur la fusion de PDF en Java pour découvrir d'autres modèles, ou découvrez comment signer numériquement des PDF en Java pour ajouter des signatures au fichier de sortie combiné. Pour les opérations au niveau des pages (réorganisation, suppression ou extraction de pages individuelles), consultez l'exemple de suppression de pages spécifiques.

Prêt à l'essayer dans votre propre projet ? Commencez votre essai gratuit — aucune carte de crédit requise. Lorsque vous êtes prêt à déployer, consultez les options de licence pour les équipes et les entreprises.

Questions Fréquemment Posées

Quel est le moyen le plus simple de fusionner des fichiers PDF en Java ?

La manière la plus simple est PdfDocument.merge(pdf1, pdf2) de IronPDF for Java. Chargez chaque fichier avec PdfDocument.fromFile(Paths.get("file.pdf")), passez les deux à merge(), et enregistrez le résultat avec merged.saveAs().

Quels sont les prérequis pour fusionner des PDFs avec IronPDF en Java ?

Vous avez besoin de Java 8 ou plus avec JAVA_HOME configuré, un IDE Java comme IntelliJ IDEA ou Eclipse, Maven ou Gradle configuré, et la dépendance IronPDF ajoutée au fichier pom.xml ou build.gradle de votre projet.

Puis-je fusionner plus de deux fichiers PDF à la fois en Java ?

Oui. PdfDocument.merge() accepte une liste d'arguments de longueur variable, vous pouvez donc passer directement trois objets PdfDocument ou plus. Pour une collection dynamique, convertissez une List<PdfDocument> en tableau avec list.toArray(new PdfDocument[0]) et passez-la à merge().

Comment contrôler l'ordre des pages lors de la fusion de PDFs en Java ?

Les pages apparaissent dans le résultat dans le même ordre que les arguments passés à merge(). Si vous construisez une liste dynamiquement, triez-la avant d'appeler merge() -- par exemple, triez par nom de fichier ou par un champ de date dans les métadonnées du document.

Comment fusionner des PDFs générés à partir de HTML en Java ?

Appelez PdfDocument.renderHtmlAsPdf(htmlString) pour chaque section HTML pour produire un PdfDocument en mémoire, puis passez ces objets à PdfDocument.merge(). Aucun fichier intermédiaire n'est écrit sur le disque.

Quelles opérations supplémentaires sur PDF puis-je effectuer après fusion en Java ?

Après fusion, IronPDF for Java prend en charge l'ajout d'en-têtes et de pieds de page, l'application de filigranes personnalisés, la compression du résultat pour réduire la taille du fichier, l'ajout de signatures numériques, l'extraction ou la suppression de pages individuelles, et le remplissage de champs de formulaire.

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite
Prêt à commencer?
Version : 2026.6 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ?
exécuter un échantillon Regardez votre code HTML se transformer en PDF.