Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Willkommen zu diesem Tutorial, in dem wir untersuchen werden, wie man Word-Dokumente mit der Microsoft Interop in einer C#-Konsolenanwendung druckt. Diese anfängerfreundliche Anleitung führt Sie durch die Schritte zum programmgesteuerten Drucken von Microsoft Word-Dokumenten.
Bevor Sie sich mit dem Code befassen, müssen Sie einige Dinge einrichten:
Microsoft Word-Installation: Stellen Sie sicher, dass Sie Microsoft Word auf Ihrem System installiert haben. Wenn nicht, besuchen Sie die offizielle Microsoft-Website oder den App-Store Ihres Computers, um es zu installieren.
Visual Studio-Einrichtung: Sie sollten Visual Studio installiert haben und in der Lage sein, eine Konsolenanwendung zu erstellen. Wenn Sie ein Anfänger sind, sollten Sie Folgendes herunterladenVisual Studio-Gemeinschaftdie kostenlos ist und für unsere Bedürfnisse ausreicht.
Ein Word-Dokument: Halten Sie zu Testzwecken ein Word-Musterdokument auf Ihrem Rechner bereit. Dies ist das Dokument, das wir an die Druckerei schicken werden.
Öffnen Sie Visual Studio.
Klicken Sie auf Ein neues Projekt erstellen.
Suchen Sie nach "Console App" und wählen Sie die entsprechende C#-Vorlage aus.
Die Verwendung von Interop erfordert einen Verweis auf die Microsoft Office Interop-Bibliothek. So fügen Sie sie hinzu:
Klicken Sie in Visual Studio mit der rechten Maustaste auf Ihr Konsolenprojekt im Projektmappen-Explorer.
Navigieren Sie zu Hinzufügen > Referenz.
Wechseln Sie im Fenster Referenz-Manager auf die Registerkarte COM.
Geben Sie "Microsoft Word" in die Suchleiste ein, um die Liste zu filtern.
Wählen Sie aus den Ergebnissen Microsoft Word xx.x Object Library(wobei xx.x die Versionsnummer angibt).
Klicken Sie auf die Schaltfläche OK, um die Referenz hinzuzufügen.
Sie können es auch mit dem NuGet Package Manager installieren.
Stellen Sie sicher, dass das Zielframework Ihrer Anwendung mit der Interop-Bibliothek kompatibel ist. Sie können dies überprüfen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt klicken, Eigenschaften auswählen und dann das Zielframework auf der Registerkarte Anwendung anzeigen. Wenn Sie Probleme mit der Version der Interop-Bibliothek haben, können Sie das erforderliche Paket oder die Baugruppe herunterladen oder die Version des Ziel-Frameworks anpassen.
Nachdem Sie die Umgebung eingerichtet haben, können Sie nun mit dem Codierungsprozess fortfahren.
Das Dokumentobjekt ist das Herzstück der Interop-Dienste im Umgang mit Word-Dokumenten. Dieses Objekt stellt ein Microsoft Word-Dokument dar und bietet alle seine Funktionalitäten.
Eine häufige Aufgabe ist das Öffnen eines Dokuments:
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)
Die vielen Parameter mit ref oMissing mögen abschreckend wirken, sind aber für die Open-Methode unerlässlich, die zahlreiche Argumente erwartet, von denen die meisten optional sind.
Nachdem wir unsere Umgebung eingerichtet und das Dokumentobjekt verstanden haben, ist es an der Zeit, sich mit den Kernfunktionen des Druckens von Word-Dokumenten zu beschäftigen.
Um das Dokument zu drucken, können Sie die folgende Methode verwenden:
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
Bei dieser Methode wird das Dokument an den Standarddrucker mit den Standardeinstellungen gesendet.
Wenn Sie einen Druckdialog einrichten, die Druckereinstellungen anpassen oder sogar mehrere Seiten drucken möchten, benötigen Sie einen detaillierteren Ansatz:
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);
}
Private Sub ButtonPrintWithSettings_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim copies As Object = "1"
Dim pages As Object = "1-3" ' To print multiple pages, e.g., 1 to 3.
wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
Im obigen Quellcode geben wir den Seitenbereich und die Anzahl der Kopien an, aber die möglichen Anpassungen sind enorm.
Die Möglichkeit, Druckeinstellungen zu ändern, ist das Besondere an der programmatischen Steuerung. Egal, ob Sie die Druckereinstellungen anpassen, einen bestimmten Drucker definieren oder das Dokument sogar im Hintergrund drucken möchten - mit Interop ist alles möglich.
Beim geräuschlosen Drucken geht es darum, das Dokument ohne jegliche Benutzerinteraktion an den Drucker zu senden:
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)
Um ein Dokument auf einem bestimmten Drucker zu drucken, der nicht der Standarddrucker ist:
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name"
wordDoc.PrintOut()
Neben der Angabe des Druckers müssen möglicherweise auch die Druckereinstellungen angepasst werden:
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
Auf diese Weise kann der Benutzer Einstellungen wie Ausrichtung, Duplexdruck und vieles mehr manuell anpassen.
Microsoft Interop bietet zwar Funktionen zur Verwaltung von Word-Dokumenten, ist aber nicht so robust und effizient, wie es für eine ernsthafte kommerzielle Nutzung sein sollte. EingabeIronWord-eine überlegene Alternative zu Interop für die Verarbeitung von Word DOCX-Dateien. IronWord ermöglicht das nahtlose Lesen, Schreiben und Manipulieren von Excel-Dateien in C#. Erfahren Sie mehr überwie man mit IronWord anfängt.
In diesem Tutorial haben wir uns mit den Schritten beschäftigt, die erforderlich sind, um Microsoft Interop zu nutzen, um Word-Dokumente programmatisch in einer C#-Konsolenanwendung zu drucken. Wir haben gesehen, wie man den Druckdialog anzeigt, benutzerdefinierte Druckeinstellungen festlegt und verschiedene Druckaspekte wie die Auswahl eines bestimmten Druckers oder die Definition eines Seitenbereichs steuert. Interop bietet zwar grundlegende Funktionen, aber es gibt auch leistungsfähige Alternativen wieIronWord.
9 .NET API-Produkte für Ihre Bürodokumente