Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Bienvenue dans ce tutoriel, où nous verrons comment imprimer des documents Word à l'aide de l'interopérabilité Microsoft dans une application console C#. Ce guide, destiné aux débutants, vous guidera à travers les étapes de l'impression programmatique de documents Microsoft Word.
Avant de se plonger dans le code, il est essentiel de mettre en place un certain nombre d'éléments :
Installation de Microsoft Word : Assurez-vous que Microsoft Word est installé sur votre système. Si ce n'est pas le cas, rendez-vous sur le site officiel de Microsoft ou dans la boutique d'applications de votre ordinateur pour l'installer.
Installation de Visual Studio : Visual Studio doit être installé et permettre la création d'une application console. Si vous êtes débutant, envisagez de télécharger Communauté Visual Studioqui est gratuite et qui suffit à nos besoins.
Un document Word : Préparez un exemple de document Word sur votre machine à des fins de test. Il s'agit du document que nous enverrons à l'imprimante.
L'utilisation d'Interop nécessite une référence à la bibliothèque Microsoft Office Interop. Voici comment l'ajouter :
Cliquez sur le bouton OK pour ajouter la référence.
Vous pouvez également l'installer à l'aide du gestionnaire de paquets NuGet.
Assurez-vous que le cadre cible de votre application est compatible avec la bibliothèque Interop. Vous pouvez le vérifier en faisant un clic droit sur votre projet dans l'explorateur de solutions, en sélectionnant Propriétés, puis en affichant le cadre de travail 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 paquetage ou l'assemblage nécessaire ou d'ajuster la version du cadre de travail cible.
Une fois l'environnement mis en place, vous pouvez maintenant procéder au codage.
L'objet document est au cœur des services Interop lorsqu'il s'agit de documents Word. Cet objet représente un document Microsoft Word et fournit toutes ses fonctionnalités.
Une tâche courante consiste à ouvrir un document :
object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
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);
object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
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);
Dim oMissing As Object = Type.Missing
Dim fileName As Object = "C:\path_to_document\document.docx"
Dim wordDoc As Word._Document = wordApp.Documents.Open(fileName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
La multiplicité des paramètres avec ref oMissing peut sembler décourageante, mais elle est essentielle pour la méthode Open, qui attend de nombreux arguments, dont la plupart sont facultatifs.
Après avoir configuré notre environnement et compris l'objet document, il est temps de se plonger dans la fonctionnalité de base de l'impression des documents Word.
Pour imprimer le document, vous pouvez utiliser la méthode suivante :
private void ButtonPrint_Click(object sender, EventArgs e)
{
wordDoc.PrintOut();
}
private void ButtonPrint_Click(object sender, EventArgs e)
{
wordDoc.PrintOut();
}
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
wordDoc.PrintOut()
End Sub
Cette méthode envoie le document à l'imprimante par défaut en utilisant les paramètres par défaut.
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 :
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
object copies = "1";
object pages = "1-3"; // To print multiple pages, e.g., 1 to 3.
wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
object copies = "1";
object pages = "1-3"; // To print multiple pages, e.g., 1 to 3.
wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Dans le code source ci-dessus, nous spécifions l'intervalle de pages et le nombre de copies, mais les possibilités de personnalisation sont vastes.
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 silencieusement le document, tout est à portée de main avec Interop.
L'impression silencieuse consiste à envoyer le document à l'imprimante sans aucune interaction de la part de l'utilisateur :
object background = false;
wordDoc.PrintOut(Background: ref background);
object background = false;
wordDoc.PrintOut(Background: ref background);
Dim background As Object = False
wordDoc.PrintOut(Background:= background)
Pour imprimer un document sur une imprimante spécifique autre que celle par défaut :
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name"
wordDoc.PrintOut()
Outre la spécification de l'imprimante, il peut s'avérer nécessaire d'ajuster les paramètres de l'imprimante :
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
wordDoc.PrintOut();
}
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
wordDoc.PrintOut();
}
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName
wordDoc.PrintOut()
End If
L'utilisateur peut ainsi régler manuellement des paramètres tels que l'orientation, l'impression recto-verso, etc.
Bien que Microsoft Interop fournisse des fonctionnalités pour gérer les documents Word, il n'est pas aussi robuste et efficace qu'il devrait l'être pour une utilisation commerciale sérieuse. Entrer IronWord-une alternative supérieure à Interop pour le traitement des fichiers Word DOCX. IronWord permet de lire, d'écrire et de manipuler des fichiers Excel en C#. En savoir plus sur comment démarrer avec IronWord.
Dans ce tutoriel, nous avons étudié les étapes permettant de tirer parti de Microsoft Interop pour imprimer des documents Word de manière programmatique 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 divers aspects de l'impression tels que le choix d'une imprimante spécifique ou la définition d'un intervalle de pages. Bien qu'Interop offre des capacités fondamentales, il convient de noter qu'il existe des alternatives puissantes telles que IronWord.
9 produits de l'API .NET pour vos documents de bureau