Passer au contenu du pied de page
UTILISATION D'IRONWORD

C# Imprimer Word Tutoriel : Guide étape par étape

Bienvenue dans ce tutoriel, où nous allons explorer comment imprimer des documents Word à l'aide de Microsoft Interop dans une application console C#. Ce guide destiné aux débutants vous expliquera les étapes à suivre pour imprimer des documents Microsoft Word par programmation.

Prérequis

Avant de plonger dans le code, il est essentiel d'avoir mis en place quelques éléments :

  • Installation de Microsoft Word : Assurez-vous que Microsoft Word est installé sur votre système. Sinon, rendez-vous sur le site web officiel de Microsoft ou sur l'App Store de votre ordinateur pour l'installer.

  • Configuration de Visual Studio : Vous devez avoir installé Visual Studio et disposer des fonctionnalités nécessaires pour créer une application console. Si vous êtes débutant, envisagez de télécharger Visual Studio Community , qui est gratuit et suffisant pour nos besoins.

  • Un document Word : Préparez un document Word d'exemple sur votre ordinateur à des fins de test. Voici le document que nous enverrons à l'imprimeur.

Configurer l'Environnement

Créer une nouvelle application console

  1. Ouvrez Visual Studio.
  2. Cliquez sur " Créer un nouveau projet ".
  3. Recherchez " Application console " et sélectionnez le modèle C# approprié.
  4. Nommez votre projet (par exemple, " InteropPrintConsoleTutorial ") et choisissez un emplacement approprié.

Ajout d'une référence d'interopérabilité

L'utilisation d'Interop nécessite une référence à la bibliothèque Microsoft Office Interop. Voici comment l'ajouter :

  1. Dans Visual Studio, cliquez avec le bouton droit sur votre projet Console dans l'Explorateur de solutions.
  2. Accédez à Ajouter > Référence.
  3. Dans la fenêtre Gestionnaire de références, accédez à l'onglet COM.
  4. Tapez " Microsoft Word " dans la barre de recherche pour filtrer la liste.
  5. Dans les résultats, sélectionnez " Bibliothèque d'objets Microsoft Word xx.x " (où xx.x désigne le numéro de version).
  6. Cliquez sur le bouton OK pour ajouter la référence.

Vous pouvez également l'installer à l'aide du gestionnaire de packages NuGet.

Vous pouvez également installer la bibliothèque Microsoft.Office.Interop.Word à l'aide du gestionnaire de packages NuGet.

Vérifier les paramètres de l'application

Assurez-vous que le framework cible de votre application est compatible avec la bibliothèque Interop. Vous pouvez le vérifier en cliquant avec le bouton droit sur votre projet dans l'Explorateur de solutions, en sélectionnant Propriétés, puis en consultant le framework cible sous l'onglet Application. Si vous rencontrez des problèmes avec la version de la bibliothèque Interop, envisagez de télécharger le package ou l'assembly nécessaire ou d'ajuster la version du framework cible.

L'environnement étant configuré, vous pouvez maintenant procéder au processus de codage.

Comprendre l'objet document

L'objet document est au cœur des services d'interopérabilité lors du traitement des documents Word. Cet objet représente un document Microsoft Word et offre toutes ses fonctionnalités.

Une tâche courante consiste à ouvrir un document :

using Word = Microsoft.Office.Interop.Word;

// Object needed to avoid passing specific parameters
object oMissing = Type.Missing;

// File path to the Word document you want to open
object fileName = @"C:\path_to_document\document.docx";

// Create a new instance of the Word application
Word.Application wordApp = new Word.Application();

// Open the document with specified parameters
Word._Document wordDoc = wordApp.Documents.Open(
    ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing);
using Word = Microsoft.Office.Interop.Word;

// Object needed to avoid passing specific parameters
object oMissing = Type.Missing;

// File path to the Word document you want to open
object fileName = @"C:\path_to_document\document.docx";

// Create a new instance of the Word application
Word.Application wordApp = new Word.Application();

// Open the document with specified parameters
Word._Document wordDoc = wordApp.Documents.Open(
    ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing);
Imports Word = Microsoft.Office.Interop.Word

' Object needed to avoid passing specific parameters
Private oMissing As Object = Type.Missing

' File path to the Word document you want to open
Private fileName As Object = "C:\path_to_document\document.docx"

' Create a new instance of the Word application
Private wordApp As New Word.Application()

' Open the document with specified parameters
Private wordDoc As Word._Document = wordApp.Documents.Open(fileName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
$vbLabelText   $csharpLabel

Les multiples paramètres avec ref oMissing peuvent sembler intimidants, mais ils sont essentiels pour la méthode Open, qui attend de nombreux arguments, dont la plupart sont optionnels.

Mise en œuvre de la fonctionnalité d'impression

Notre environnement étant configuré et l'objet document étant compris, il est temps de se plonger dans les fonctionnalités de base de l'impression des documents Word.

Impression de base d'un document Word

Pour imprimer le document, vous pouvez utiliser la méthode suivante :

// Method to print the document using default printer settings
private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut(); // Sends the document to the default printer
}
// Method to print the document using default printer settings
private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut(); // Sends the document to the default printer
}
' Method to print the document using default printer settings
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	wordDoc.PrintOut() ' Sends the document to the default printer
End Sub
$vbLabelText   $csharpLabel

Cette méthode envoie le document à l'imprimante par défaut en utilisant les paramètres par défaut.

Imprimer des documents Word avec des personnalisations

Si vous souhaitez introduire une boîte de dialogue d'impression, personnaliser les paramètres de l'imprimante ou même imprimer plusieurs pages, vous aurez besoin d'une approche plus détaillée :

// Method to print the document with custom settings
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    // Number of copies to print
    object copies = "1";

    // Page range to print, e.g., pages 1 to 3
    object pages = "1-3";

    // Print the document with specified copies and page range
    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
// Method to print the document with custom settings
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    // Number of copies to print
    object copies = "1";

    // Page range to print, e.g., pages 1 to 3
    object pages = "1-3";

    // Print the document with specified copies and page range
    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
' Method to print the document with custom settings
Private Sub ButtonPrintWithSettings_Click(ByVal sender As Object, ByVal e As EventArgs)
	' Number of copies to print
	Dim copies As Object = "1"

	' Page range to print, e.g., pages 1 to 3
	Dim pages As Object = "1-3"

	' Print the document with specified copies and page range
	wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
$vbLabelText   $csharpLabel

Dans le code source ci-dessus, nous spécifions la plage de pages et le nombre de copies, mais les possibilités de personnalisation sont vastes.

Personnalisation des paramètres d'impression

La possibilité de modifier les paramètres d'impression est ce qui distingue le contrôle programmatique. Que vous souhaitiez ajuster les paramètres de l'imprimante, définir une imprimante spécifique ou même imprimer le document en silence, tout est possible avec Interop.

Impression silencieuse

L'impression silencieuse consiste à envoyer le document à l'imprimante sans aucune interaction de l'utilisateur :

// Object to determine whether to print in the background or not
object background = false;

// Print the document silently (no user interactions)
wordDoc.PrintOut(Background: ref background);
// Object to determine whether to print in the background or not
object background = false;

// Print the document silently (no user interactions)
wordDoc.PrintOut(Background: ref background);
' Object to determine whether to print in the background or not
Dim background As Object = False

' Print the document silently (no user interactions)
wordDoc.PrintOut(Background:= background)
$vbLabelText   $csharpLabel

Spécifier une imprimante

Pour imprimer un document sur une imprimante spécifique autre que l'imprimante par défaut :

// Set the active printer to a specified printer by name
wordApp.ActivePrinter = "Printer Name";

// Print the document using the specified printer
wordDoc.PrintOut();
// Set the active printer to a specified printer by name
wordApp.ActivePrinter = "Printer Name";

// Print the document using the specified printer
wordDoc.PrintOut();
' Set the active printer to a specified printer by name
wordApp.ActivePrinter = "Printer Name"

' Print the document using the specified printer
wordDoc.PrintOut()
$vbLabelText   $csharpLabel

Paramètres avancés de l'imprimante

Au-delà de la simple spécification de l'imprimante, il peut être nécessaire d'ajuster les paramètres de l'imprimante :

// Creates a PrintDialog to allow the user to choose printer settings
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    // Sets the Word application's active printer to the user's choice
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;

    // Prints the document using user's selected printer settings
    wordDoc.PrintOut();
}
// Creates a PrintDialog to allow the user to choose printer settings
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    // Sets the Word application's active printer to the user's choice
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;

    // Prints the document using user's selected printer settings
    wordDoc.PrintOut();
}
' Creates a PrintDialog to allow the user to choose printer settings
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
	' Sets the Word application's active printer to the user's choice
	wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName

	' Prints the document using user's selected printer settings
	wordDoc.PrintOut()
End If
$vbLabelText   $csharpLabel

Ainsi, l'utilisateur peut ajuster manuellement des paramètres tels que l'orientation, l'impression recto verso, etc.

Présentation d'IronWord

Bien que Microsoft Interop offre des fonctionnalités pour gérer les documents Word, il n'est pas aussi robuste et efficace qu'il le devrait pour une utilisation commerciale sérieuse. Découvrez IronWord — une alternative supérieure à Interop pour le traitement des fichiers Word DOCX. IronWord permet une lecture, une écriture et une manipulation fluides des fichiers Excel en C#. Apprenez-en davantage sur la façon de commencer à utiliser IronWord .

IronXL pour .NET : la bibliothèque Excel en C#

Conclusion

Dans ce tutoriel, nous avons exploré les étapes nécessaires pour utiliser Microsoft Interop afin d'imprimer des documents Word par programmation dans une application console C#. Nous avons vu comment afficher la boîte de dialogue d'impression, définir des paramètres d'impression personnalisés et contrôler différents aspects de l'impression, comme le choix d'une imprimante spécifique ou la définition d'une plage de pages. Bien qu'Interop offre des fonctionnalités de base, il convient de noter qu'il existe des alternatives puissantes comme IronWord .

Questions Fréquemment Posées

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

Pour imprimer des documents Word en C#, vous devez avoir Microsoft Word et Visual Studio installés sur votre machine. Alternativement, vous pouvez utiliser IronWord pour le traitement des documents, ce qui ne nécessite pas que Microsoft Word soit installé.

Comment puis-je configurer une nouvelle application console dans Visual Studio pour l'impression de documents Word?

Pour configurer une nouvelle application console dans Visual Studio, ouvrez l'IDE, sélectionnez 'Créer un nouveau projet', recherchez 'App Console', choisissez le modèle C# et nommez votre projet en conséquence.

Comment ajouter une référence à la bibliothèque Microsoft Interop pour l'impression de documents Word?

Dans Visual Studio, faites un clic droit sur votre projet, sélectionnez Ajouter > Référence, et sous l'onglet COM, sélectionnez 'Microsoft Word xx.x Object Library'. Avec IronWord, vous pouvez gérer les documents Word sans avoir besoin de références COM.

Quel est le rôle de l'objet Document dans les services Interop de Word?

L'objet Document dans les services Interop représente un document Microsoft Word et permet une manipulation programmatique du document. IronWord offre des capacités similaires avec des performances améliorées et une plus grande efficacité.

Comment puis-je imprimer un document Word en utilisant les paramètres d'imprimante par défaut en C#?

Vous pouvez imprimer un document Word avec les paramètres d'imprimante par défaut en utilisant la méthode wordDoc.PrintOut() dans Interop. IronWord offre un processus d'impression simplifié avec plus de contrôle sur les paramètres.

Quelles étapes sont impliquées dans la personnalisation des paramètres d'impression pour les documents Word en C#?

Pour personnaliser les paramètres d'impression, tels que le nombre de copies ou la plage de pages, utilisez la méthode PrintOut avec des paramètres spécifiés comme Copies: ref copies et Pages: ref pages. IronWord propose des options similaires pour une impression personnalisée.

Comment fonctionne l'impression silencieuse pour les documents Word en C#?

L'impression silencieuse permet d'imprimer des documents sans interaction utilisateur en réglant le paramètre Background à false dans la méthode wordDoc.PrintOut(Background: ref background). IronWord permet une impression silencieuse de manière efficace.

Comment puis-je sélectionner une imprimante autre que l'imprimante par défaut pour imprimer des documents Word en C#?

Vous pouvez spécifier une imprimante différente en réglant wordApp.ActivePrinter sur le nom de l'imprimante souhaitée avant d'exécuter wordDoc.PrintOut(). IronWord permet une fonctionnalité similaire pour la sélection des imprimantes.

Quels sont les avantages d'utiliser IronWord pour le traitement des documents Word en C#?

IronWord offre un traitement robuste et efficace des documents Word, permettant une lecture, une écriture et une manipulation des fichiers DOCX en C# de manière transparente sans avoir besoin d'une installation de Microsoft Word.

Comment puis-je introduire une boîte de dialogue d'impression pour la personnalisation lors de l'impression de documents Word en C#?

Pour introduire une boîte de dialogue d'impression, utilisez la classe PrintDialog pour permettre aux utilisateurs de choisir les paramètres de l'imprimante, puis réglez wordApp.ActivePrinter sur le nom de l'imprimante sélectionnée avant d'imprimer. IronWord prend également en charge les boîtes de dialogue d'impression personnalisées par l'utilisateur.

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