using IronWord;
using IronWord.Models;
// Load docx
WordDocument doc = new WordDocument("document.docx");
// Add text
doc.AddText("Add text using IronWord");
// Export docx
doc.SaveAs("save_document.docx");
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
Ouvrez votre Visual Studio.
Créez une nouvelle application console C#.
Allez dans Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution.
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 > ; 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
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 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)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier