Passer au contenu du pied de page
UTILISATION D'IRONWORD

Comment convertir Word en PDF en C#

La conversion programmatique de documents est devenue une fonctionnalité essentielle dans de nombreuses applications. Dans le monde des affaires notamment, la conversion de documents Word en fichiers PDF est une tâche courante. Heureusement, grâce à C# et à Microsoft Interop, vous pouvez convertir sans problème les fichiers Word en PDF. Ce tutoriel discutera du processus de conversion d'un document Word en PDF par programmation en utilisant C#.

Prérequis

Avant de vous plonger dans le code permettant de convertir un fichier .DOCX en PDF en utilisant C# , il est crucial de vous assurer que l'environnement nécessaire est configuré. Voici les prérequis nécessaires :

Installation de Microsoft Word

Assurez-vous d'avoir Microsoft Word installé sur votre ordinateur. Les services d'interopérabilité utiliseront les fonctionnalités intégrées de Word pour gérer la conversion des documents Word et des PDF.

Visual Studio

Une version de Visual Studio est nécessaire pour créer, compiler et exécuter le programme C#. Si vous ne possédez pas déjà Visual Studio, vous pouvez télécharger la version communautaire, qui est gratuite, sur le site web officiel de Microsoft .

Installer le package Microsoft.Office.Interop.Word

Ce package 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 gestionnaire de packages NuGet, 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#.

Autorisations 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 peut parfois résoudre les problèmes liés aux autorisations.

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

Configurer l'Environnement

  1. Ouvrez Visual Studio.
  2. Créez une nouvelle application console C#.
  3. Accédez à Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution .
  4. Recherchez " Microsoft.Office.Interop.Word " et installez-le. Ce module permettra à notre application de communiquer avec Word et de convertir les fichiers Word.

![Comment convertir un document Word en PDF en C# : Figure 1 - Ouvrez Visual Studio et créez un nouveau projet d'application console. Accédez au Gestionnaire de packages NuGet pour la solution. Recherchez " Microsoft.Office.Interop.Word " et installez-le. Ce package 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 en utilisant C#, nous utiliserons les fonctionnalités des services d'interopérabilité Microsoft. L'extrait de code ci-dessous remplit cette tâche, et une explication détaillée suit.

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

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

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

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

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

Friend Class Program
	Shared Sub Main()
		' Create an instance of Microsoft Word application
		Dim wordApp = New Word.Application()

		' Open the Word document
		Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")

		' Specify the path where the PDF should be saved
		Dim outputPath = "path_where_you_want_to_save_pdf.pdf"

		' Convert the Word document to PDF
		wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)

		' Close the Word document and quit the Word application
		wordDocument.Close()
		wordApp.Quit()

		' Output a success message
		Console.WriteLine("Word document converted to PDF successfully!")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explication du code

Le début de notre code inclut un alias d'espace de noms crucial, Word pour faire référence facilement à l'espace de noms Microsoft.Office.Interop.Word . L'espace de noms System fournit des classes fondamentales pour la programmation C#, et il est un élément essentiel de presque toutes les applications C#.

L'action proprement dite 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 est similaire 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 crucial de spécifier le chemin d'accès à votre document Word au lieu de "path_to_your_word_file.docx" .

Maintenant que le document est ouvert, nous déterminons où nous voulons enregistrer notre PDF. Ceci est spécifié dans la variable outputPath . Il est essentiel de noter que le chemin d'accès doit être ajusté en fonction de l'emplacement où vous souhaitez que votre fichier PDF converti soit enregistré.

La magie de la conversion du document Word en PDF s'opère avec la ligne wordDocument.ExportAsFixedFormat(...) . Les services d'interopérabilité offrent une méthode intégrée permettant une conversion sans tracas. La méthode prend deux arguments principaux : le chemin d'accès où le PDF doit être enregistré et le format d'exportation, qui dans notre cas est le PDF.

Après la conversion, il est recommandé de fermer les ressources utilisées. Ainsi, wordDocument.Close() garantit la fermeture du document ouvert, tandis que wordApp.Quit() assure la fermeture de l'instance de l'application Word lancée en arrière-plan.

Enfin, notre programme communique le résultat à l'utilisateur au moyen d'un simple message dans la 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 offre une solution adaptée pour gérer et convertir les documents Word.

Conversion de Word en PDF avec C# utilisant IronPDF et IronWord

Si vous développez une application .NET qui implique l'automatisation de documents, une tâche courante à laquelle vous serez confronté consiste à convertir des documents Word au format PDF. Que vous travailliez avec des modèles de documents .docx, des factures, des rapports ou des contrats, la conversion des fichiers DOCX en PDF garantit une mise en forme cohérente, une livraison sécurisée et une compatibilité multiplateforme.

Cet article explique comment convertir facilement un document Word en PDF à l'aide de deux outils puissants d'Iron Software : IronPDF et IronWord . Vous apprendrez en quoi ils diffèrent, quand utiliser chaque outil et comment les implémenter en C# pour une génération rapide et fiable de Word vers PDF.

Pourquoi convertir un document Word en PDF avec .NET ?

Avant d'aborder la manière dont vous pouvez utiliser ces bibliothèques pour accomplir cette tâche, examinons d'abord pourquoi la conversion de vos documents Word en PDF peut améliorer votre espace de travail et vos documents.

Alors pourquoi convertir les fichiers DOCX au format PDF ?

  • Cela garantit une cohérence visuelle sur différentes plateformes
  • Verrouille la mise en forme et empêche les modifications involontaires
  • C'est idéal pour archiver des documents juridiques ou financiers
  • Cela facilite l'impression et le partage de vos fichiers
  • C'est souvent le format requis pour de nombreux flux de travail d'entreprise.

Présentation des outils : IronPDF et IronWord

IronWord

IronWord

IronWord est une bibliothèque .NET conçue spécifiquement pour la lecture et l'édition de documents Word. Avec IronWord, vous pouvez charger directement des documents .docx et les modifier selon vos besoins, sans avoir besoin d'installer Microsoft Office Interop ou Microsoft Word, avant d'utiliser IronPDF pour la conversion DOCX en PDF.

Voyons maintenant IronWord en action, en créant un nouvel objet document et en y ajoutant du texte :

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Abstract

Private doc As New WordDocument()

Private text As New TextContent("This is some example text.")
text.Style = New TextStyle() With {
	.Color = Color.Red,
	.TextFont = New Font() With {
		.FontFamily = "Roboto",
		.FontSize = 72
	}
}
doc.AddText(text)
doc.Save("example.docx")
$vbLabelText   $csharpLabel

Document Word de sortie

! Sortie Word

IronPDF

IronPDF

IronPDF est une bibliothèque PDF complète pour .NET, dotée de nombreux outils pour la génération et la manipulation de fichiers PDF. Bien que l'une de ses caractéristiques les plus remarquables soit sa capacité de conversion HTML vers PDF de haute qualité, il est également capable de gérer les tâches de conversion Word vers PDF en C#. Pour les développeurs .NET qui souhaitent générer des PDF ou modifier des documents PDF existants, IronPDF répond à tous leurs besoins.

IronPDF est-il vraiment facile à utiliser ? Examinons l'exemple de code suivant pour voir comment cela fonctionne lors de la conversion de documents Word en PDF :

using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
Imports IronPdf

Private renderer = New DocxToPdfRenderer()
Private pdf = renderer.RenderDocxAsPdf("sample.docx")
pdf.SaveAs("example.pdf")
$vbLabelText   $csharpLabel

Sortie PDF

! Sortie PDF

Flux de travail combiné : IronWord et IronPDF

Bien qu'IronWord ne puisse pas exporter directement au format PDF, il est parfait pour préparer des documents Word par programmation. Voici un flux courant :

Pipeline Word vers PDF en C

  1. Charger ou créer un document Word avec IronWord
  2. Modifier ou compléter des données dynamiques (par exemple, remplacer des jetons)
  3. Enregistrez le fichier .docx
  4. Utilisez IronPDF pour convertir le document au format PDF.
  5. Ensuite, vous pouvez utiliser IronPDF pour apporter d'autres modifications au PDF nouvellement généré, comme l'ajout de filigranes ou d'annotations.

Ce flux de travail hybride offre une flexibilité maximale avec des dépendances minimales, idéal pour les applications web, les services cloud et les applications de bureau.

Alors, comment cela se traduit-il en pratique ?

Utilisation d'IronWord pour la création de documents

Nous allons d'abord utiliser IronWord pour créer un exemple de document Word.

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Abstract

Private doc As New WordDocument()

Private title As New TextContent("Example Report.")
Private text As New TextContent("Report created using IronWord, you can use this to create dynamic text and tables.")
title.Style = New TextStyle() With {
	.TextFont = New Font() With {.FontSize = 72},
	.IsBold = True
}

Dim paragraph As New Paragraph()
paragraph.AddText(title)
paragraph.AddText(text)

doc.AddParagraph(paragraph)
doc.Save("example.docx")
$vbLabelText   $csharpLabel

Output

! Sortie de document Word

Utilisation d'IronPDF pour la conversion de Word en PDF en C

En seulement 3 lignes de code, nous pourrons facilement convertir notre document Word en PDF .

using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
Imports IronPdf

Private renderer = New DocxToPdfRenderer()

Private pdf = renderer.RenderDocxAsPdf("example.docx")

pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Output

! Sortie PDF

C'est ainsi que nous avons pu créer un document Word personnalisé avec IronWord, avant d'utiliser IronPDF pour le convertir au format PDF en quelques lignes de code seulement.

Prêt pour le déploiement : fonctionne partout

IronPDF et IronWord fonctionnent tous deux dans :

  • ASP.NET Core et Blazor
  • Azure App Services et Azure Functions
  • Compatible avec .NET Framework, .NET 6, 7, 8, 9 et .NET Core
  • S'intègre facilement aux environnements Linux, Docker et serveurs.
  • Applications de bureau (WPF/WinForms) et applications console

Aucune installation d'Office requise. Aucune interopérabilité COM. Uniquement des bibliothèques .NET modernes et performantes.

Cas d'utilisation courants

Use Case IronWord IronPDF
Charger/modifier des fichiers .docx Oui No
Remplacer du texte/des jetons dans Word Oui No
Enregistrer les documents .docx Oui No
Convertir HTML en PDF Non Yes
Générer le fichier PDF final Non Yes
Rendu côté serveur Oui Oui

Astuce de pro : Utiliser les vues Razor pour générer des documents PDF de type Word

Même si vous n'utilisez pas IronWord, IronPDF prend directement en charge les modèles Razor . Vous pouvez utiliser Razor Pages pour générer des mises en page de style Word avec CSS, puis les convertir en PDF :

@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@model InvoiceModel <html> <body> <h1> Invoice for @Model.CustomerName</h1> <p> Amount Due: @Model.TotalAmount</p> </body> </html>
$vbLabelText   $csharpLabel

IronPDF peut transformer cela en un PDF soigné, prêt à imprimer.

Résumé : Exploiter pleinement la puissance de Word pour convertir en PDF dans .NET

En intégrant IronPDF et IronWord à vos projets .NET, vous bénéficiez d'un flux de travail puissant et sans Office pour la gestion des documents dans .NET. Créez des documents Word dynamiques avec des styles et des tableaux personnalisés, ou convertissez vos documents en fichiers PDF d'une précision pixel parfaite. Quelle que soit la tâche, grâce à ces bibliothèques, vous disposerez toujours d'outils puissants pour gérer les tâches Word et PDF du bout des doigts.

Cette combinaison est idéale pour générer des factures, des rapports, des contrats et tout document qui commence dans Word mais doit se terminer dans un format PDF sécurisé et cohérent.

Que vous développiez des logiciels de bureau ou que vous les déployiez sur Azure, IronWord et IronPDF vous offrent un contrôle total sur l'automatisation des documents : rapide, fiable et prêt pour la production. Si vous souhaitez voir ces bibliothèques en action, n'hésitez pas à consulter leur documentation, où vous trouverez de nombreux exemples de code pour IronPDF et IronWord afin d'en savoir plus sur leurs fonctionnalités et leur fonctionnement.

Commencez dès aujourd'hui

Installez les deux bibliothèques via le gestionnaire de packages NuGet pour les intégrer rapidement à vos projets Visual Studio. Vous voulez essayer avant d'acheter ? Téléchargez dès aujourd'hui la version d'essai gratuite d' IronPDF et d'IronWord et commencez immédiatement à créer des documents performants.

Questions Fréquemment Posées

Comment puis-je convertir un document Word en PDF avec C# ?

Vous pouvez utiliser le package Microsoft.Office.Interop.Word pour convertir des documents Word en PDF en C#. Cela implique de créer une instance d'application Word, de charger le document, et d'utiliser la méthode ExportAsFixedFormat pour l'enregistrer en tant que PDF.

Quel est le rôle de la méthode ExportAsFixedFormat dans la conversion de Word en PDF ?

La méthode ExportAsFixedFormat dans Microsoft.Office.Interop.Word est utilisée pour exporter un document Word en tant que fichier PDF, fournissant un format fixe qui convient au partage et à l'impression.

Quels sont les prérequis pour convertir des documents Word en PDF en C# ?

Pour convertir des documents Word en PDF en C#, vous avez besoin de Microsoft Word installé, de Visual Studio, et du package Microsoft.Office.Interop.Word disponible via le Gestionnaire de packages NuGet.

Pourquoi est-il important de fermer l'application Word après la conversion ?

Fermer l'application Word après la conversion est essentiel pour libérer les ressources système et éviter les fuites de mémoire. Cela garantit que l'application ne reste pas ouverte en arrière-plan, consommant des ressources inutiles.

Quelle est une alternative plus efficace pour gérer les fichiers Excel que Microsoft Interop ?

IronXL est une alternative plus efficace pour gérer les fichiers Excel en C#. Il ne nécessite pas l'installation de Microsoft Office et offre des performances plus rapides avec une large gamme de formats de fichiers pris en charge.

Comment installer la bibliothèque IronXL pour l'utiliser dans mon application C# ?

Pour installer IronXL dans votre application C#, utilisez la console du Gestionnaire de packages NuGet et exécutez la commande Install-Package IronXL.Excel.

Quels formats de fichiers IronXL peut-il gérer lorsqu'il travaille avec des fichiers Excel ?

IronXL peut convertir et gérer des fichiers Excel dans plusieurs formats, y compris XLS, XLSX, XLSM, CSV, TSV, JSON, XML, HTML, ainsi que des tableaux binaires et de bytes.

Quels sont les avantages d'utiliser IronXL par rapport aux services Interop de Microsoft ?

IronXL offre des avantages tels que l'absence de besoin d'installation de Microsoft Office, des vitesses de traitement plus rapides, une facilité d'utilisation, et la prise en charge d'une gamme plus large de formats de fichiers par rapport aux services Interop de Microsoft.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite