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");
C# Print Word Tutorial: Schritt-für-Schritt-Anleitung
Jordi Bardia
30. Oktober 2023
Teilen Sie:
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.
Voraussetzungen
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.
Einrichten der Umgebung
Eine neue Konsolenanwendung erstellen
Ö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.
Benennen Sie Ihr Projekt(z. B. "InteropPrintConsoleTutorial") und wählen Sie einen geeigneten Standort.
Hinzufügen der Interop-Referenz
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.
Überprüfen der Anwendungseinstellungen
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 Dokumentenobjekt verstehen
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:
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)
$vbLabelText $csharpLabel
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.
Implementieren der Druckfunktionalität
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.
Grundlegendes Drucken von Word-Dokumenten
Um das Dokument zu drucken, können Sie die folgende Methode verwenden:
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
wordDoc.PrintOut()
End Sub
$vbLabelText $csharpLabel
Bei dieser Methode wird das Dokument an den Standarddrucker mit den Standardeinstellungen gesendet.
3.2 Word-Dokumente mit Anpassungen drucken
Wenn Sie einen Druckdialog einrichten, die Druckereinstellungen anpassen oder sogar mehrere Seiten drucken möchten, benötigen Sie einen detaillierteren Ansatz:
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
$vbLabelText $csharpLabel
Im obigen Quellcode geben wir den Seitenbereich und die Anzahl der Kopien an, aber die möglichen Anpassungen sind enorm.
Anpassen der Druckeinstellungen
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.
Silent Printing
Beim geräuschlosen Drucken geht es darum, das Dokument ohne jegliche Benutzerinteraktion an den Drucker zu senden:
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
$vbLabelText $csharpLabel
Auf diese Weise kann der Benutzer Einstellungen wie Ausrichtung, Duplexdruck und vieles mehr manuell anpassen.
Einführung IronWord
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.
Fazit
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.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.