UTILISATION D'IRONWORD

Comment convertir Word en PDF en C#

Publié novembre 13, 2023
Partager:

La conversion programmatique de documents est devenue une fonction essentielle dans de nombreuses applications. Dans le monde des affaires en particulier, la conversion de documents Word en fichiers PDF est une tâche de routine. Heureusement, avec C# et Microsoft Interop, vous pouvez convertir en toute transparence des fichiers Word en PDF. Ce tutoriel aborde le processus de conversion programmatique de Word en PDF à l'aide de C# ;

Conditions préalables

Avant de plonger dans le code pourconvertir .DOCX en PDF à l'aide de C#il est donc essentiel de s'assurer que l'environnement nécessaire a été mis en place. Vous trouverez ci-dessous les conditions requises :

Installation de Microsoft Word

Assurez-vous que Microsoft Word est installé sur votre ordinateur. Les services Interop utiliseront les capacités intégrées de Word pour gérer la conversion du document Word et du PDF.

Visual Studio

Une version deVisual Studio est nécessaire pour créer, compiler et exécuter le programme C#. Si vous n'avez pas encore Visual Studio, vous pouvez télécharger la version communautaire, qui est gratuite, à l'adresse suivanteSite officiel de Microsoft.

Installer le paquet Microsoft.Office.Interop.Word

Ce paquet est essentiel pour fournir les fonctionnalités nécessaires à votre programme C# pour interagir avec les documents Word. Il sera installé ultérieurement à l'aide du NuGet Package Manager, mais il est bon de connaître son importance dans le processus de conversion.

Document Word à convertir

Préparez un document Word ou un fichier .docx que vous souhaitez convertir. Assurez-vous de connaître son chemin d'accès sur votre machine, car vous devrez le spécifier dans le programme C#.

Permissions suffisantes

Assurez-vous de pouvoir lire le fichier Word et d'écrire le fichier PDF résultant dans le répertoire souhaité. L'exécution de Visual Studio en tant qu'administrateur permet parfois de résoudre les problèmes liés aux autorisations.

Grâce à ces conditions préalables, vous pouvez configurer votre environnement et convertir vos documents Word en fichiers PDF.

Mise en place de l'environnement

  1. Ouvrez votre Visual Studio.

  2. Créez une nouvelle application console C#.

  3. Allez dans NuGet Package Manager > Manage NuGet Packages for Solution.

  4. Recherchez "Microsoft.Office.Interop.Word" et installez-le. Ce paquet permettra à notre application de communiquer avec Word et de convertir des fichiers Word.

    Comment convertir Word en PDF en C# : Figure 1 - Ouvrez Visual Studio et créez un nouveau projet Console App. Allez dans NuGet Package Manager > ; Manage Packages for Solution. Recherchez Microsoft.Office.Interop.Word et installez-le. Ce paquet permettra à notre application console d'interagir avec Word et de convertir des fichiers Word.

Exemple de code pour convertir un document Word en PDF

Pour convertir un document Word en PDF à l'aide de C#, nous utiliserons les capacités des services Interop de Microsoft. L'extrait de code ci-dessous permet d'accomplir cette tâche, et une explication détaillée suit.

using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        var wordApp = new Word.Application();
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        var outputPath = @"path_where_you_want_to_save_pdf.pdf";
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        wordDocument.Close();
        wordApp.Quit();

        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        var wordApp = new Word.Application();
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        var outputPath = @"path_where_you_want_to_save_pdf.pdf";
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        wordDocument.Close();
        wordApp.Quit();

        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
Imports System
Imports Word = Microsoft.Office.Interop.Word

Friend Class Program
	Shared Sub Main()
		Dim wordApp = New Word.Application()
		Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")

		Dim outputPath = "path_where_you_want_to_save_pdf.pdf"
		wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)

		wordDocument.Close()
		wordApp.Quit()

		Console.WriteLine("Word document converted to PDF successfully!")
	End Sub
End Class
VB   C#

Explication du code

Le début de notre code comprend deux espaces de noms essentiels. L'espace de noms System fournit des classes fondamentales pour la programmation C#, et c'est un élément de base dans presque tous les C# ;

La véritable action commence dans la méthode Main. Nous commençons par créer une nouvelle instance de l'application Word en utilisant new Word.Application(). Cette étape s'apparente au lancement de MS Word, mais tout se passe en arrière-plan, à l'insu de l'utilisateur. Une fois l'instance de l'application initialisée, nous lui demandons d'ouvrir un document Word avec la méthode wordApp.Documents.Open. Il est essentiel de spécifier le chemin d'accès à votre document Word à la place de "path_to_your_word\file.docx".

Maintenant que le document est ouvert, nous déterminons l'endroit où nous voulons enregistrer notre PDF. Il est spécifié dans la variable output path. Il est essentiel de noter que le chemin d'accès doit être ajusté à l'endroit où vous souhaitez que le fichier PDF converti se trouve.

La magie de la conversion du document Word en PDF se produit avec la ligne wordDocument.ExportAsFixedFormat(...). Les services Interop fournissent une méthode intégrée, permettant une conversion sans problème. La méthode prend deux arguments principaux : le chemin d'accès où le PDF doit être sauvegardé et le format d'exportation, qui dans notre cas est le PDF.

Après la conversion, il est bon de fermer les ressources que nous avons utilisées. Ainsi, wordDocument.Close() assure que le document que nous avons ouvert est maintenant fermé, tandis que wordApp.Quit() veille à ce que l'instance de l'application Word que nous avons lancée en arrière-plan soit terminée.

Enfin, notre programme communique le résultat à l'utilisateur par un simple message de console. La fonction Console.WriteLine()la méthode fournit un retour d'information, signalant que le processus de conversion a été exécuté avec succès.

Ainsi, Microsoft.Office.Interop.Word fournit une solution appropriée pour manipuler et convertir les documents Word.

Présentation d'IronXL Une alternative supérieure à l'interopérabilité

Bien que Microsoft.Office.Interop fournisse une solution réalisable pour la conversion de documents, il existe une alternative plus efficace et plus robuste pour travailler avec Excels :IronXL.

IronXL simplifie le processus de traitement des fichiers Excel en C#. Non seulement il surpasse Interop en termes de vitesse et de facilité d'utilisation, mais il ne nécessite aucune installation supplémentaire comme Microsoft Office. Vous souhaitez en savoir plus ? Consultez leur tutoriel détaillé surcomment lire des fichiers Excel à l'aide de C#.

La bibliothèque IronXL peut être installée en utilisant la commande suivante dans la console NuGet Package Manager :

Install-Package IronWord

Comment convertir Word en PDF en C# : Figure 2 - IronXL for .NET : La bibliothèque Excel C#

Convertir les types de fichiers de feuilles de calcul

using IronXL;
using System.IO;

// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");

// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();

// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
using IronXL;
using System.IO;

// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");

// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();

// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
Imports IronXL
Imports System.IO

' Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls")
workBook.SaveAs("sample.xlsx")
workBook.SaveAs("sample.tsv")
workBook.SaveAsCsv("sample.csv")
workBook.SaveAsJson("sample.json")
workBook.SaveAsXml("sample.xml")

' Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html")
Dim htmlString As String = workBook.ExportToHtmlString()

' Export the excel file as Binary, Byte array, Data set, Stream
Dim binary() As Byte = workBook.ToBinary()
Dim byteArray() As Byte = workBook.ToByteArray()
Dim dataSet As System.Data.DataSet = workBook.ToDataSet() ' Allow easy integration with DataGrids, SQL and EF
Dim stream As Stream = workBook.ToStream()
VB   C#

Comme le montre l'exemple de code ci-dessus, la bibliothèque IronXL permet de lire les fichiers Excel sans utiliser l'interopérabilité. Vous pouvez également utiliser la bibliothèque IronXL pour charger votre classeur et l'exporter avec la méthode SaveAs dans différents formats tels que XLS, XLSX, XLSM, CSV, TSV, JSON, XML. Il permet également d'exporter des types de données tels que des chaînes HTML, des binaires, des tableaux d'octets, des ensembles de données et des flux de mémoire directement dans le code.

Conclusion

Dans l'ère numérique actuelle, les conversions de documents, en particulier les documents Word vers PDF, sont devenues indispensables pour de nombreuses applications. Il est possible d'y parvenir en utilisant C# et les possibilités offertes par Microsoft Interop.

Cependant, en restant à jour avec des outils de qualité supérieure tels queIronXL est essentiel, car il permet d'améliorer les performances et de simplifier le processus. Si vous envisagez d'essayer IronXL, sachez qu'ils proposent une offre de service deessai gratuit. Une fois que vous avez expérimenté ses prouesses, la licence commence à partir d'un prix raisonnable $749, ce qui vous permet de rentabiliser votre investissement et d'assurer une gestion fluide des documents dans vos applications.

< PRÉCÉDENT
C# Editer Word (Tutoriel du développeur d'exemples de code)
SUIVANT >
C# Ouvrir un document Word