UTILISATION D'IRONWORD

Comment convertir Word en PDF en C#

Regan Pun
Regan Pun
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 pour convertir .DOCX en PDF avec C#, il est crucial de s'assurer que vous avez configuré l'environnement nécessaire. 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 de Visual 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, depuis le site officiel de Microsoft.

Installer le package 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 Gestionnaire de packages NuGet > Gérer les packages NuGet pour la 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 d'application console. Allez dans NuGet Package Manager &gt ; Manage Packages for Solution. Recherchez "Microsoft.Office.Interop.Word" et installez-le. Ce package aidera notre application console à interagir avec Word et à convertir également 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
$vbLabelText   $csharpLabel

Explication du code

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

L'action réelle commence à l'intérieur de la méthode Main. Nous créons d'abord 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. Ceci est spécifié dans la variable output path. Il est essentiel de noter que le chemin doit être ajusté à l'endroit où vous souhaitez que votre fichier PDF converti réside.

La magie de la conversion du document Word en PDF s'opère 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 de bonne pratique de fermer les ressources que nous avons utilisées. Ainsi, wordDocument.Close() garantit que le document que nous avons ouvert est maintenant fermé, tandis que wordApp.Quit() s'assure que l'instance de l'application Word que nous avons lancée en arrière-plan est terminée.

Enfin, notre programme communique le résultat à l'utilisateur par un simple message de console. La méthode Console.WriteLine() 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 adaptée pour gérer et convertir des documents Word.

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

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

IronXL simplifie le processus de gestion 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é sur comment lire des fichiers Excel en utilisant 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()
$vbLabelText   $csharpLabel

Comme le montre l'exemple de code ci-dessus, la bibliothèque IronXL aide à lire les fichiers Excel sans utiliser Interop. Vous pouvez également utiliser la bibliothèque IronXL pour charger votre classeur et l'exporter avec la méthode SaveAs vers 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, notamment les documents Word en 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.

Toutefois, rester à jour avec des outils supérieurs comme IronXL est essentiel, car cela offre des performances améliorées et simplifie le processus. Si vous envisagez d'essayer IronXL, ils proposent un essai gratuit. Une fois que vous avez expérimenté sa puissance, la licence commence à partir d'un raisonnable $749, offrant un bon rapport qualité-prix pour votre investissement et garantissant une gestion fluide des documents dans vos applications.

Regan Pun
Ingénieur logiciel
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT
C# Editer Word (Tutoriel du développeur d'exemples de code)
SUIVANT >
C# Ouvrir un document Word