Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment fusionner des fichiers PDF en C# .NET ?

.NET PDF Merge Tasks avec IronPDF : Un guide complet en C# : Image 1 - Fusionner des PDFs avec IronPDF

Combiner plusieurs fichiers PDF en un seul document est une exigence courante dans les applications commerciales. Que vous génériez des rapports financiers consolidés, groupiez des contrats légaux pour archivage ou assembliez des factures à plusieurs volets, la fusion de PDFs par programmation permet de gagner du temps et d'éliminer les étapes manuelles. IronPDF offre une API simple qui gère cela en seulement quelques lignes de C#, sans besoin d'outils externes ou d'utilitaires en ligne de commande.

Ce guide couvre chaque scénario pratique : fusion de deux fichiers, fusion de listes de plusieurs fichiers, traitement en mémoire avec MemoryStream, et opérations post-fusion comme la protection par mot de passe et la compression.

Commencez avec un essai gratuit pour ajouter des capacités de fusion de PDFs à votre application .NET aujourd'hui.

Comment commencer avec IronPDF ?

Avant d'écrire du code de fusion, installez IronPDF depuis NuGet. Le paquet 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 dépendances runtime supplémentaires.

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 un guide d'installation étape par étape incluant l'application de la clé de licence, consultez le aperçu de l'installation de IronPDF. Une fois le paquet installé et une clé de licence appliquée, chaque exemple de ce guide s'exécute sans modification.

Comment fusionner des documents PDF par programme ?

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

Facture d'entrée 1

.NET PDF Merge Tasks avec IronPDF : Un guide complet en C# : Image 2 - Facture d'entrée Un

Facture d'entrée deux

.NET PDF Merge Tasks avec IronPDF : Un guide complet en C# : Image 3 - Facture d'entrée Deux

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");
$vbLabelText   $csharpLabel

Sortie

.NET PDF Merge Tasks avec IronPDF : Un guide complet en C# : Image 4 - Documents PDF combinés

La méthode Merge accepte deux instances PdfDocument et retourne un nouveau document contenant toutes les pages des deux sources dans l'ordre. Le fichier résultant préserve le formatage original, les images, les polices et le contenu intégré de chaque entrée. Une fois que vous avez le document fusionné, vous pouvez l'enregistrer sur le disque, le retourner à partir d'un point de terminaison web ou ajouter des en-têtes et pieds de page avant de le livrer aux utilisateurs.

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

Comment fusionner plusieurs fichiers PDF à la fois ?

Quand vous devez combiner plus de deux documents, passez une List<PdfDocument> (ou n'importe quelle IEnumerable<PdfDocument>) à la méthode surchargée Merge. Cette approche s'adapte 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");
$vbLabelText   $csharpLabel

Document PDF fusionné

.NET PDF Merge Tasks avec IronPDF : Un guide complet en C# : Image 5 - Nouveau fichier PDF 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 fusion, l'API de gestion des pages vous permet de copier, déplacer ou supprimer des pages individuelles de n'importe quelle PdfDocument.

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

Comment fusionner des fichiers PDF en utilisant MemoryStream ?

Le traitement en mémoire est nécessaire pour les services web et les fonctions sans serveur où l'écriture sur disque est impossible ou trop lente. IronPDF supporte le chargement de documents PDF à partir de tableaux d'octets et expose le résultat fusionné comme 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");
$vbLabelText   $csharpLabel

Fichier de contrat fusionné

.NET PDF Merge Tasks avec IronPDF : Un guide complet en C# : Image 6 - Document PDF de contrat fusionné

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

IronPDF accepte les chemins de fichiers string, les tableaux d'octets et les flux de manière interchangeable comme sources d'entrée, vous pouvez donc mélanger et assortir dans le même appel de fusion. Un document chargé à partir d'un BLOB de base de données peut être fusionné avec un autre récupéré d'une URL sans étape de conversion intermédiaire.

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

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

La préservation 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 maintenue dans la sortie fusionnée. Pour les documents fusionnés qui nécessitent une table des matières unifiée plutôt que des arbres de signets distincts pour chaque document, l'API de table des matières vous permet de construire une structure de navigation personnalisée après la fusion.

Si un document source a été créé sans métadonnées de signet, la sortie fusionnée 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é transmis en inspectant la propriété OutlineManager sur le PdfDocument résultant. Vous pouvez renommer les étiquettes de signets par programme, 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 travaux qui nécessitent également la conversion en 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 étape est plus efficace et évite de reconvertir des sorties qui pourraient nécessiter d'autres modifications.

Après la fusion, vous pouvez également ajouter des numéros de page au document combiné en utilisant la fonctionnalité de numérotation des pages, ce qui est utile lorsque la sortie couvre des dizaines de pages provenant de plusieurs sources.

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

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

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");
$vbLabelText   $csharpLabel

Le UserPassword invite les lecteurs avant qu'ils ne puissent voir le document, tandis que le OwnerPassword verrouille les changements de permission. Vous pouvez combiner la protection par mot de passe avec les restrictions d'impression, les indicateurs de prévention de copie et les signatures numériques. Pour un tour d'horizon complet des options de permission, le tutoriel de sécurité PDF couvre chaque paramètre disponible.

Si les documents source sont eux-mêmes protégés par mot de passe, IronPDF peut décrypter les PDFs cryptés avant la fusion, à condition que vous ayez les informations d'identification du propriétaire. Cela signifie que vous pouvez fusionner des documents sécurisés de différents fournisseurs ou systèmes en une seule sortie re-sécurisée sans étapes de déverrouillage manuelles.

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

Fusionner de gros documents avec de nombreuses images peut produire des sorties volumineuses à stocker ou à envoyer. L'API de compression PDF de IronPDF peut réduire considérablement la taille des fichiers en recompressant les images intégrées à un réglage 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");
$vbLabelText   $csharpLabel

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

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

L'API PdfDocument.Merge s'adapte à une large gamme de flux de travail de documents dans les applications .NET de production :

Scénarios courants de fusion de PDFs et l'approche IronPDF pour chacun
Cas d'utilisationSources d'entréeApproche recommandée
Rapport financier annuelQuatre fichiers PDF trimestriels sur disqueFusion de liste avec `Merge(List<PdfDocument>)`
Contrat juridique en plusieurs partiesContrat de base + amendements depuis la base de donnéesChargement en tableau d'octets + fusion en mémoire
Consolidation des facturesFactures rendues en HTML par ligne d'articleHTML en PDF par article, puis fusion de liste
Livraison de rapports automatisésFichiers source DOCX et PDF mélangésConversion DOCX en PDF, puis fusion
Archive de documents sécurisésRapports de plusieurs départementsFusion de liste + `SecuritySettings`

Pour les flux de travail où les documents doivent être extraits de manière sélective avant la fusion, l'API de séparation de PDF peut extraire des plages de pages spécifiques d'un document source. Vous pouvez copier des pages entre des fichiers PDF directement, ce qui est utile lorsque seules certaines sections d'un large document doivent apparaître dans la sortie fusionnée.

IronPDF supporte également l'extraction de texte et d'images des documents fusionnés pour le traitement en aval, ce qui le rend adapté comme étape centrale d'assemblage de documents dans des pipelines de données plus larges.

Quelles sont vos prochaines étapes ?

La méthode PdfDocument.Merge de IronPDF couvre la gamme complète des scénarios de fusion de PDFs .NET avec un minimum de code : fusion de deux fichiers, fusion de listes multi-fichiers, 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.

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

Après avoir ajouté le support de fusion, explorez les opérations documentaires connexes : séparer un PDF en fichiers distincts, ajouter des numéros de page aux sorties multi-pages, 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<PdfDocument> 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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me