Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment fusionner des fichiers PDF en C# .NET ?

 Fusion de PDF .NET avec IronPDF: Guide complet en C# : Image 1 - Fusionner des PDF avec IronPDF

La fusion de plusieurs fichiers PDF en un seul document est une exigence courante dans les applications d'entreprise. Que vous génériez des rapports financiers consolidés, regroupiez des contrats juridiques pour archivage ou assembliez des factures en plusieurs parties, la fusion automatisée de fichiers PDF permet de gagner du temps et d'éliminer les étapes manuelles. IronPDF fournit une API simple qui gère cela en quelques lignes de C# seulement, sans aucun outil externe ni utilitaire de ligne de commande requis.

Ce guide couvre tous les scénarios pratiques : fusions de deux fichiers, fusions de listes de fichiers multiples, traitement en mémoire avec MemoryStream, et opérations post-fusion telles que la protection par mot de passe et la compression.

Commencez dès aujourd'hui avec un essai gratuit pour ajouter des fonctionnalités de fusion de PDF à votre application .NET .

Comment commencer avec IronPDF ?

Avant d'écrire le moindre code de fusion, installez IronPDF depuis NuGet . Ce package cible .NET Framework 4.6.2+ et .NET 5/6/7/8/9/10, il fonctionne donc dans les applications console, les services ASP.NET Core , les fonctions Azure et les projets Windows Forms sans aucune dépendance d'exécution supplémentaire.

Ouvrez la console du gestionnaire de packages NuGet et exécutez :

Install-Package IronPdf
Install-Package IronPdf
SHELL

Ou utilisez le .NET CLI :

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

Pour obtenir des instructions d'installation étape par étape, y compris l'application de la clé de licence, consultez la présentation de l'installation IronPDF . Une fois le package installé et la clé de licence appliquée, chaque exemple de ce guide fonctionnera sans modification.

Comment fusionner des documents PDF par programmation ?

La méthode PdfDocument.Merge offre le moyen le plus direct de combiner deux fichiers PDF en un seul PDF. Chargez chaque document source avec PdfDocument.FromFile, transmettez les deux objets à Merge et enregistrez le résultat.

Facture d'entrée 1

 Fusion de PDF .NET avec IronPDF: Guide complet C# : Image 2 - Saisie de la facture n° 1

Facture d'entrée deux

 Fusion de PDF .NET avec IronPDF: Guide complet C# : Image 3 - Saisie de la facture n° 2

using IronPdf;

// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");

// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Save the merged document
merged.SaveAs("combined_invoices.pdf");
using IronPdf;

// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");

// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Save the merged document
merged.SaveAs("combined_invoices.pdf");
Imports IronPdf

' Load two input PDF files from disk
Dim pdfA As PdfDocument = PdfDocument.FromFile("invoice_one.pdf")
Dim pdfB As PdfDocument = PdfDocument.FromFile("invoice_two.pdf")

' Merge PDF documents into a single PDF
Dim merged As PdfDocument = PdfDocument.Merge(pdfA, pdfB)

' Save the merged document
merged.SaveAs("combined_invoices.pdf")
$vbLabelText   $csharpLabel

Sortie

 Fusion de PDF .NET avec IronPDF: Guide complet en C# : Image 4 - Documents PDF combinés

La méthode Merge accepte deux instances PdfDocument et renvoie un nouveau document contenant toutes les pages des deux sources dans l'ordre. Le fichier résultant conserve la mise en forme d'origine, les images, les polices et le contenu intégré de chaque entrée. Une fois le document fusionné, vous pouvez l'enregistrer sur disque, le renvoyer depuis un point de terminaison Web ou ajouter des en-têtes et des pieds de page avant de le distribuer aux utilisateurs.

Notez que PdfDocument.FromFile fonctionne à la fois avec les chemins de fichiers et les chaînes URI, de sorte que les documents stockés dans le stockage blob cloud peuvent être chargés directement par URL. L'opération de fusion est non destructive : les deux objets sources restent inchangés après l'appel.

Comment fusionner plusieurs fichiers PDF simultanément ?

Lorsque vous devez combiner plus de deux documents, transmettez un List<PdfDocument> (ou tout IEnumerable<PdfDocument>) à la méthode surchargée Merge. Cette approche permet de passer de trois fichiers à des centaines sans modifier la structure de votre code.

using IronPdf;

// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
};

// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);

// Save the final document
merged.SaveAs("annual_report.pdf");
using IronPdf;

// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
};

// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);

// Save the final document
merged.SaveAs("annual_report.pdf");
Imports IronPdf

' Build a list of quarterly reports
Dim pdfsToMerge As New List(Of PdfDocument) From {
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
}

' Combine into one annual report
Dim merged As PdfDocument = PdfDocument.Merge(pdfsToMerge)

' Save the final document
merged.SaveAs("annual_report.pdf")
$vbLabelText   $csharpLabel

Document PDF fusionné

 Fusion de fichiers PDF .NET avec IronPDF: Guide complet en C# : Image 5 - Fichier PDF de sortie nouvellement fusionné

IronPDF traite les pages dans l'ordre de la liste, donc la séquence des documents dans votre List<PdfDocument> contrôle directement l'ordre des pages dans la sortie. Si vous devez réorganiser les pages après la fusion, l' API de gestion des pages vous permet de copier, déplacer ou supprimer des pages individuelles à partir de n'importe quel PdfDocument.

Ce modèle fonctionne également avec les documents générés à l'exécution. Par exemple, vous pouvez convertir du HTML en PDF pour chaque section d'un rapport et fusionner les objets résultants sans jamais écrire de fichiers intermédiaires sur le disque. Il en va de même pour les conversions DOCX vers PDF lorsque votre contenu source provient de documents Word.

Comment fusionner des fichiers PDF à l'aide de MemoryStream ?

Le traitement en mémoire est nécessaire pour les services web et les fonctions sans serveur lorsque l'écriture sur disque est impossible ou trop lente. IronPDF prend en charge le chargement de documents PDF à partir de tableaux d'octets et expose le résultat fusionné sous la forme d'un MemoryStream via la propriété Stream.

using IronPdf;
using System.IO;

// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");

// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);

// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;

// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
using IronPdf;
using System.IO;

// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");

// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);

// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;

// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
Imports IronPdf
Imports System.IO

' Load PDF content as byte arrays (e.g., from database or HTTP response)
Dim firstFileBytes As Byte() = File.ReadAllBytes("contract_part1.pdf")
Dim secondFileBytes As Byte() = File.ReadAllBytes("contract_part2.pdf")

' Create PdfDocument objects from byte arrays
Dim doc1 As New PdfDocument(firstFileBytes)
Dim doc2 As New PdfDocument(secondFileBytes)

' Merge and access the result as a stream
Dim merged As PdfDocument = PdfDocument.Merge(doc1, doc2)
Dim outputStream As MemoryStream = merged.Stream

' Optionally save to disk as well
merged.SaveAs("merged_contract.pdf")
$vbLabelText   $csharpLabel

Fichier de contrat fusionné

 Fusion de PDF .NET avec IronPDF: Guide complet C# : Image 6 - Document PDF de contrat fusionné

La propriété Stream renvoie un MemoryStream positionné au début, prêt à être inclus dans une réponse HTTP ou transmis à une autre étape de traitement. Dans un contrôleur ASP.NET Core , vous pouvez renvoyer directement File(outputStream, "application/pdf", "merged.pdf"). Aucun fichier temporaire n'est créé, ce qui simplifie le nettoyage et réduit la charge disque dans les scénarios à haut débit.

IronPDF accepte indifféremment les chemins de fichiers sous forme de chaînes de caractères, les tableaux d'octets et les flux comme sources d'entrée, ce qui vous permet de les combiner dans un même appel de fusion. Un document chargé à partir d'un BLOB de base de données peut être fusionné avec un document récupéré à partir d'une URL sans aucune étape de conversion intermédiaire.

Comment les signets et la navigation sont-ils préservés dans les fichiers fusionnés ?

Lors de la fusion de fichiers PDF, IronPDF conserve la structure des signets de chaque document source. Les lecteurs voient la table des matières complète de tous les fichiers combinés dans le volet de navigation du document fusionné, ce qui permet aux utilisateurs de passer facilement d'une section à l'autre provenant de différents documents sources. Les signets de la spécification PDF sont stockés dans le dictionnaire de structure du document, et IronPDF reconstruit correctement cette structure pour toutes les sources fusionnées.

La sauvegarde des signets se fait automatiquement, sans configuration supplémentaire. Si les fichiers sources contiennent des signets imbriqués (chapitres et sous-sections), la hiérarchie est conservée dans le résultat fusionné. Pour les documents fusionnés qui nécessitent une table des matières unifiée plutôt que des arborescences de signets distinctes par document, l' API de table des matières vous permet de créer une structure de navigation personnalisée après la fusion.

Si un document source a été créé sans métadonnées de signet, le document fusionné ne contiendra aucune entrée de plan pour cette section. Avant de livrer un fichier fusionné dans un contexte de conformité ou d'archivage, vérifiez quels signets ont été conservés en inspectant la propriété OutlineManager sur le PdfDocument résultant. Vous pouvez renommer par programmation les étiquettes des signets, réorganiser les entrées ou injecter de nouveaux éléments qui relient le contenu de différents documents sources dans une hiérarchie logique. Pour les flux de travail qui nécessitent également une conversion PDF/A pour l'archivage à long terme, appliquez l'étape de conversion de conformité après la fusion plutôt qu'à chaque source individuellement. Convertir le document fusionné final en une seule passe est plus efficace et évite de reconvertir les résultats qui pourraient nécessiter des modifications supplémentaires.

Après la fusion, vous pouvez également ajouter des numéros de page au document combiné grâce à la fonction de numérotation des pages , ce qui est utile lorsque le résultat s'étend sur des dizaines de pages provenant de sources multiples.

Comment appliquer une protection par mot de passe à un PDF fusionné ?

Après fusion, le résultat PdfDocument expose SecuritySettings pour appliquer les mots de passe utilisateur et propriétaire, restreignant les droits d'impression, de copie et de modification.

using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";

// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";

merged.SaveAs("secured_merged.pdf");
using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";

// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";

merged.SaveAs("secured_merged.pdf");
Imports IronPdf

Dim pdfA As PdfDocument = PdfDocument.FromFile("part1.pdf")
Dim pdfB As PdfDocument = PdfDocument.FromFile("part2.pdf")

Dim merged As PdfDocument = PdfDocument.Merge(pdfA, pdfB)

' Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123"

' Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456"

merged.SaveAs("secured_merged.pdf")
$vbLabelText   $csharpLabel

Le UserPassword invite les lecteurs avant qu'ils puissent consulter le document, tandis que le OwnerPassword contrôle les modifications d'autorisation. Vous pouvez combiner la protection par mot de passe avec des restrictions d'impression, des indicateurs de prévention de la copie et des signatures numériques. Pour une présentation complète des options d'autorisation, le tutoriel sur la sécurité des PDF couvre tous les paramètres disponibles.

Si les documents sources sont eux-mêmes protégés par un mot de passe, IronPDF peut décrypter les PDF chiffrés avant la fusion, à condition que vous disposiez des identifiants du propriétaire. Cela signifie que vous pouvez fusionner des documents sécurisés provenant de différents fournisseurs ou systèmes en un seul document sécurisé, sans étapes de déverrouillage manuel.

Comment réduire la taille d'un fichier PDF fusionné ?

La fusion de documents volumineux contenant de nombreuses images peut produire des fichiers volumineux à stocker ou à envoyer. L'API de compression PDF d'IronPDF permet de réduire considérablement la taille des fichiers en recompressant les images intégrées avec un niveau de qualité inférieur, tout en préservant la netteté du texte.

using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100

merged.SaveAs("compressed_merged.pdf");
using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100

merged.SaveAs("compressed_merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

L'argument entier de CompressImages est un pourcentage de qualité : les valeurs entre 50 et 75 réduisent généralement la taille du fichier de 40 à 70 % pour les documents contenant beaucoup d'images sans dégradation visible du contenu textuel. Pour les documents contenant des graphiques vectoriels et un minimum d'images raster, les économies sont moindres, mais l'appel reste judicieux.

Quels sont les cas d'utilisation courants de la fusion de PDF?

L'API PdfDocument.Merge s'adapte à un large éventail de flux de travail documentaires dans les applications .NET de production :

Scénarios courants de fusion de PDF et approche IronPDF pour chacun
Cas d'utilisationSources d'entréeApproche recommandée
rapport financier annuelQuatre fichiers PDF trimestriels sur disqueFusion de listes avec `Merge(List)`
Contrat juridique en plusieurs partiesContrat de base + modifications issues de la base de donnéesChargement de tableau d'octets + fusion en mémoire
Consolidation des facturesFactures rendues en HTML par ligneConversion HTML vers PDF pour chaque élément, puis fusion des listes
Distribution automatisée des rapportsFichiers sources mixtes DOCX et PDFConversion DOCX vers PDF, puis fusion
Archive de documents sécuriséeRapports de plusieurs départementsFusion de listes + `SecuritySettings`

Pour les flux de travail où il est nécessaire d'extraire sélectivement des documents avant de les fusionner, l' API PDF fractionnée peut extraire des plages de pages spécifiques d'un document source. Vous pouvez copier directement des pages entre fichiers PDF , ce qui est utile lorsque seules certaines sections d'un document volumineux doivent apparaître dans le document fusionné.

IronPDF prend également en charge l'extraction de texte et d'images à partir de documents fusionnés pour un traitement ultérieur, ce qui en fait une étape centrale d'assemblage de documents adaptée aux pipelines de données plus importants.

Quelles sont vos prochaines étapes ?

La méthode PdfDocument.Merge d'IronPDF couvre toute la gamme des scénarios de fusion de PDF .NET avec un minimum de code : fusions de deux fichiers, fusions de listes de fichiers multiples, traitement en mémoire, sorties protégées par mot de passe et compression post-fusion. Chaque approche utilise la même API cohérente, quel que soit le type de source d'entrée.

Démarrez un essai gratuit pour exécuter ces exemples dans votre propre projet. Pour un déploiement en production, consultez les options de licence adaptées à la taille et à l'utilisation de votre équipe.

Après avoir ajouté la prise en charge de la fusion, explorez les opérations de document connexes : diviser un PDF en fichiers distincts , ajouter des numéros de page aux sorties multipages ou appliquer des filigranes à toutes les pages du document fusionné.

Commencez avec IronPDF maintenant.
green arrow pointer

Questions Fréquemment Posées

Comment fusionnez-vous deux fichiers PDF en C#?

Chargez chaque fichier avec PdfDocument.FromFile, puis appelez PdfDocument.Merge(pdfA, pdfB) et enregistrez le résultat avec merged.SaveAs.

Comment fusionner plus de deux fichiers PDF en .NET ?

Créez une List contenant tous les documents source et passez-la à PdfDocument.Merge(list). La sortie préserve l'ordre de la liste.

Pouvez-vous fusionner des PDF en mémoire sans écrire sur le disque ?

Oui. Chargez les documents à partir de tableaux d'octets à l'aide de new PdfDocument(bytes), fusionnez-les et accédez au résultat via merged.Stream pour éviter toute écriture sur le disque.

IronPDF préserve-t-il les signets lors de la fusion des PDF ?

Oui. IronPDF transporte automatiquement la structure de signet (plan) de chaque document source dans la sortie fusionnée, y compris les hiérarchies de signets imbriqués.

Comment protéger par mot de passe un PDF fusionné en C# ?

Après la fusion, définissez merged.SecuritySettings.UserPassword pour le mot de passe du lecteur et merged.SecuritySettings.OwnerPassword pour le mot de passe des autorisations, puis appelez SaveAs.

Comment réduire la taille du fichier d'un PDF fusionné ?

Appelez merged.CompressImages(quality) avec une valeur de qualité comprise entre 50 et 75 avant de l'enregistrer. Cela re-comprime les images raster intégrées et réduit généralement la taille du fichier de 40 à 70 % pour les documents riches en images.

IronPDF peut-il fusionner des fichiers PDF cryptés ?

Oui. IronPDF peut charger et fusionner des PDF cryptés lorsque vous avez le mot de passe du propriétaire. Utilisez PdfDocument.FromFile(path, password) pour déverrouiller le fichier avant la fusion.

L'API de fusion d'IronPDF fonctionne-t-elle dans ASP.NET Core ?

Oui. Le résultat de la fusion peut être retourné comme File(merged.Stream, "application/pdf", "merged.pdf") depuis toute action de contrôleur ASP.NET Core.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi