Convertir Word en PDF en C#
par , 03/04/2026 à 09h05 (1002 Affichages)
Dans de nombreux projets professionnels, il est courant de devoir convertir des documents Word (.doc, .docx) au format PDF. Le PDF garantit une mise en page stable, une bonne sécurité et une compatibilité large, ce qui le rend idéal pour l'archivage, l'impression ou l'envoi officiel.
Cet article présente une solution simple en C# en utilisant une bibliothèque .NET spécialisée. Celle-ci ne nécessite pas l'installation de Microsoft Office, ce qui la rend particulièrement adaptée aux environnements serveur ou aux applications en ligne de commande. Nous verrons comment l'intégrer dans vos applications pour effectuer des conversions fiables, avec ou sans options avancées.
2. Prérequis et installation
2.1 Environnement
- .NET Framework 4.0 ou ultérieur / .NET Core 2.0+ / .NET 5+
- Visual Studio 2017+ (ou tout autre éditeur C#)
2.2 Ajout de la bibliothèque au projet
La bibliothèque que nous allons utiliser s'appelle Spire.Doc. Elle est disponible sur NuGet. Voici la commande pour l'installer :
Vous pouvez également la télécharger depuis le site de l'éditeur et référencer manuellement la DLL Spire.Doc.dll.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PM> Install-Package Spire.Doc
Note : La version gratuite de cette bibliothèque limite la conversion aux 5 premières pages du document. Pour des documents complets, une licence est nécessaire. Cela reste suffisant pour des tests ou des documents courts.
3. Conversion de base : Word → PDF
Le code suivant charge un fichier Word et l'enregistre au format PDF.
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 using Spire.Doc; namespace ConversionWordPdf { class Program { static void Main(string[] args) { // Charger le document Word Document document = new Document(); document.LoadFromFile(@"C:\DocumentEntree.docx"); // Sauvegarder en PDF document.SaveToFile(@"C:\DocumentSortie.pdf", FileFormat.PDF); document.Close(); System.Console.WriteLine("Conversion terminée."); } } }
Explication rapide
- LoadFromFile : charge un fichier Word (.doc, .docx, etc.)
- SaveToFile : le paramètre FileFormat.PDF indique la conversion
- Close : libère les ressources (vous pouvez aussi utiliser using)
4. Cas pratiques courants
4.1 Document protégé par mot de passe
Si le fichier Word est verrouillé, fournissez le mot de passe lors du chargement :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part document.LoadFromFile(@"C:\Protege.docx", FileFormat.Docx2013, "monMotDePasse");
4.2 Convertir seulement quelques pages
Pour convertir uniquement les pages 2 à 5 :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ToPdfParameterList paramPdf = new ToPdfParameterList() { PageRange = new PageRange(2, 5) }; document.SaveToFile(@"C:\Extrait.pdf", paramPdf);
4.3 Conversion par lots (dossier entier)
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 using System.IO; string dossierSource = @"C:\MesDocsWord"; string dossierDest = @"C:\PDFsGenere"; Directory.CreateDirectory(dossierDest); foreach (string fichierWord in Directory.GetFiles(dossierSource, "*.docx")) { string nomFichier = Path.GetFileNameWithoutExtension(fichierWord); string pdfSortie = Path.Combine(dossierDest, nomFichier + ".pdf"); using (Document doc = new Document()) { doc.LoadFromFile(fichierWord); doc.SaveToFile(pdfSortie, FileFormat.PDF); } Console.WriteLine($"Converti : {nomFichier}"); }
5. Options supplémentaires pour un PDF de qualité
5.1 Métadonnées du PDF (titre, auteur, etc.)
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 document.DocumentInformation.Title = "Rapport technique"; document.DocumentInformation.Author = "Équipe Dev"; document.DocumentInformation.Keywords = "PDF, Word, conversion";
5.2 Gestion des polices (utile pour le français)
Pour éviter les problèmes de caractères (accents, cédilles, etc.) et garantir un rendu identique sur toutes les machines :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ToPdfParameterList options = new ToPdfParameterList(); options.IsEmbeddedAllFonts = true; // inclut les polices dans le PDF options.UsePdfCompression = true; // réduit la taille du fichier document.SaveToFile(@"C:\AvecPolices.pdf", options);
6. Gestion des erreurs et bonnes pratiques
6.1 Bloc try/catch
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 try { using (Document doc = new Document()) { doc.LoadFromFile(@"C:\Entree.docx"); doc.SaveToFile(@"C:\Sortie.pdf", FileFormat.PDF); } } catch (Exception ex) { Console.WriteLine($"Erreur : {ex.Message}"); }
6.2 Recommandations
Situation Conseil Document de plus de 5 pages Pensez à la licence ou au découpage en plusieurs parties Environnement Linux Installez les polices Windows (ou utilisez des polices libres compatibles) Serveur avec forte charge Testez les performances ; utilisez using pour libérer rapidement la mémoire Fichier très volumineux (>50 Mo) Convertissez page par page avec PageRange si possible
7. Exemple complet avec interaction utilisateur
Voici un petit programme console qui demande le chemin du fichier Word et génère le PDF au même emplacement.
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 using System; using System.IO; using Spire.Doc; class ProgrammeComplet { static void Main() { Console.WriteLine("Chemin du fichier Word :"); string entree = Console.ReadLine(); if (!File.Exists(entree)) { Console.WriteLine("Fichier introuvable."); return; } string sortie = Path.ChangeExtension(entree, ".pdf"); try { using (Document doc = new Document()) { doc.LoadFromFile(entree); Console.WriteLine("Conversion en cours..."); doc.SaveToFile(sortie, FileFormat.PDF); } Console.WriteLine($"Réussi : {sortie}"); } catch (Exception ex) { Console.WriteLine($"Échec : {ex.Message}"); } Console.WriteLine("Appuyez sur une touche pour quitter."); Console.ReadKey(); } }
8. Conclusion
Nous avons exploré différentes manières de convertir des fichiers Word en PDF en C# à l'aide d'une bibliothèque externe dédiée. Cette approche, basée sur Spire.Doc, offre une API propre et ne dépend pas d'Office, ce qui la rend particulièrement adaptée aux environnements serveur ou aux traitements automatisés. Les exemples présentés couvrent les besoins courants : conversion simple, documents protégés par mot de passe, extraction de pages spécifiques, traitement par lots, ainsi que des réglages fins comme l'incorporation des polices pour un rendu identique sur tous les systèmes. La version gratuite, bien que limitée aux cinq premières pages, permet de tester la bibliothèque sur des documents courts ou d'évaluer son fonctionnement avant d'envisager l'acquisition d'une licence pour des besoins plus lourds. En suivant ces exemples, vous devriez pouvoir intégrer rapidement cette fonctionnalité dans vos propres projets .NET.










