IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Pilalo Jovanitho

Convertir Word en PDF en C#

Noter ce billet
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
PM> Install-Package Spire.Doc
Vous pouvez également la télécharger depuis le site de l'éditeur et référencer manuellement la DLL Spire.Doc.dll.

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.

Envoyer le billet « Convertir Word en PDF en C# » dans le blog Viadeo Envoyer le billet « Convertir Word en PDF en C# » dans le blog Twitter Envoyer le billet « Convertir Word en PDF en C# » dans le blog Google Envoyer le billet « Convertir Word en PDF en C# » dans le blog Facebook Envoyer le billet « Convertir Word en PDF en C# » dans le blog Digg Envoyer le billet « Convertir Word en PDF en C# » dans le blog Delicious Envoyer le billet « Convertir Word en PDF en C# » dans le blog MySpace Envoyer le billet « Convertir Word en PDF en C# » dans le blog Yahoo

Tags: csharp, pdf, word
Catégories
DotNET , C#

Commentaires

  1. Avatar de jls28
    • |
    • permalink
    Y a pas grand chose à apprendre de cet article si ce n'est que
    "la version gratuite de cette bibliothèque limite la conversion aux 5 premières pages du document",
    ce qui en réduit grandement l'intérêt pratique et ça ressemble plutôt à de la publicité déguisé pour une bibliothèque commerciale.