Zum Fußzeileninhalt springen
IRONWORD VERWENDEN

C# Drucken von Word Tutorial: Schritt-für-Schritt-Anleitung

Willkommen zu diesem Tutorial, in dem wir erkunden, wie man Word-Dokumente mit Microsoft Interop in einer C# Konsolenanwendung druckt. Dieser anfängerfreundliche Leitfaden führt Sie durch die Schritte, um Microsoft Word-Dokumente programmgesteuert zu drucken.

Voraussetzungen

Bevor Sie in den Code eintauchen, ist es wichtig, ein paar Dinge einzurichten:

  • Microsoft Word Installation: Stellen Sie sicher, dass Microsoft Word auf Ihrem System installiert ist. Falls nicht, besuchen Sie die offizielle Microsoft-Website Ihres Computers oder den App Store, um es zu installieren.

  • Visual Studio Einrichtung: Sie sollten Visual Studio mit der Fähigkeit, eine Konsolenanwendung zu erstellen, installiert haben. Wenn Sie ein Anfänger sind, sollten Sie Visual Studio Community herunterladen, das kostenlos und ausreichend für unsere Zwecke ist.

  • Ein Word-Dokument: Haben Sie ein Beispiel-Word-Dokument auf Ihrem Computer für Testzwecke bereit. Dies wird das Dokument sein, das wir an den Drucker senden.

Einrichten der Umgebung

Erstellen einer neuen Konsolenanwendung

  1. Öffnen Sie Visual Studio.
  2. Klicken Sie auf "Neues Projekt erstellen".
  3. Suchen Sie nach "Konsolen-App" und wählen Sie die passende C# Vorlage aus.
  4. Benennen Sie Ihr Projekt (z.B. "InteropPrintConsoleTutorial") und wählen Sie einen geeigneten Speicherort.

Hinzufügen der Interop-Referenz

Die Verwendung von Interop erfordert eine Referenz zur Microsoft Office Interop-Bibliothek. So fügen Sie sie hinzu:

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf Ihr Konsolenprojekt im Projektmappen-Explorer.
  2. Navigieren Sie zu Hinzufügen > Referenz.
  3. Im Referenz-Manager-Fenster gehen Sie zum COM-Tab.
  4. Geben Sie "Microsoft Word" in die Suchleiste ein, um die Liste zu filtern.
  5. Wählen Sie aus den Ergebnissen "Microsoft Word xx.x Objektbibliothek" (wobei xx.x die Versionsnummer angibt).
  6. Klicken Sie auf die Schaltfläche OK, um die Referenz hinzuzufügen.

Sie können es auch mit dem NuGet-Paket-Manager installieren.

Sie können die `Microsoft.Office.Interop.Word` Bibliothek auch mit dem NuGet-Paket-Manager installieren.

Anwendungseinstellungen überprüfen

Stellen Sie sicher, dass das Ziel-Framework Ihrer Anwendung mit der Interop-Bibliothek kompatibel ist. Dies können Sie überprüfen, indem Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer klicken, Eigenschaften auswählen und dann das Ziel-Framework unter dem Abschnitt Anwendung anzeigen. Wenn Sie Probleme mit der Version der Interop-Bibliothek haben, ziehen Sie in Betracht, das erforderliche Paket oder Assembly herunterzuladen oder die Ziel-Framework-Version anzupassen.

Mit der aufgebauten Umgebung können Sie nun mit dem Programmierprozess fortfahren.

Das Dokumentobjekt verstehen

Das Dokumentobjekt steht im Zentrum der Interop-Dienste bei der Arbeit 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:

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

Die vielen Parameter mit ref oMissing können einschüchternd wirken, aber sie sind wesentlich für die Open-Methode, die zahlreiche Argumente erwartet, von denen die meisten optional sind.

Implementierung der Druckfunktionalität

Mit unserer aufgebauten Umgebung und dem Verständnis des Dokumentobjekts ist es an der Zeit, in die Kernfunktionalität des Druckens von Word-Dokumenten einzusteigen.

Grundlegendes Drucken von Word-Dokumenten

Um das Dokument zu drucken, können Sie die folgende Methode verwenden:

// 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

Diese Methode sendet das Dokument mit den Standardeinstellungen an den Standarddrucker.

Drucken von Word-Dokumenten mit Anpassungen

Wenn Sie einen Druckdialog einführen, Druckereinstellungen anpassen oder sogar mehrere Seiten drucken möchten, benötigen Sie einen detaillierteren Ansatz:

// 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

Im obigen Quellcode geben wir den Seitenbereich und die Anzahl der Kopien an, aber die potenziellen Anpassungen sind enorm.

Anpassen von Druckeinstellungen

Die Fähigkeit, Druckeinstellungen zu ändern, ist das, was die programmgesteuerte Kontrolle auszeichnet. Ob Sie die Druckereinstellungen anpassen, einen bestimmten Drucker definieren oder das Dokument sogar stillschweigend drucken möchten, alles ist mit Interop in Reichweite.

Stilles Drucken

Stilles Drucken bedeutet, das Dokument ohne Benutzerinteraktion an den Drucker zu senden.

// 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

Einen Drucker spezifizieren

Um ein Dokument auf einem anderen als dem Standarddrucker zu drucken:

// 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

Erweiterte Druckereinstellungen

Über das einfache Spezifizieren des Druckers hinaus könnte es notwendig sein, die Druckereinstellungen anzupassen:

// 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

Auf diese Weise kann der Benutzer Einstellungen wie Orientierung, Duplexdruck und mehr manuell anpassen.

Einführung in IronWord

Während Microsoft Interop Funktionen zum Verwalten von Word-Dokumenten bietet, ist es nicht so robust und effizient, wie es für den ernsthaften kommerziellen Einsatz sein sollte. Betreten Sie IronWord—eine überlegene Alternative zu Interop für die Verarbeitung von Word-DOCX-Dateien. IronWord ermöglicht nahtloses Lesen, Schreiben und Bearbeiten von Excel-Dateien in C#. Erfahren Sie mehr darüber, wie Sie mit IronWord beginnen.

IronXL für .NET: Die C# Excel-Bibliothek

Abschluss

In diesem Tutorial haben wir die Schritte zur Nutzung von Microsoft Interop zum programmgesteuerten Drucken von Word-Dokumenten in einer C# Konsolen-Anwendung behandelt. Wir haben gesehen, wie man den Druckdialog anzeigt, benutzerdefinierte Druckeinstellungen setzt und verschiedene Druckaspekte kontrolliert, wie das Auswählen eines bestimmten Druckers oder das Definieren eines Seitenbereichs. Während Interop grundlegende Funktionen bietet, ist es wichtig anzumerken, dass es leistungsstarke Alternativen wie IronWord gibt.

Häufig gestellte Fragen

Was sind die Voraussetzungen, um in C# Word-Dokumente zu drucken?

Um in C# Word-Dokumente zu drucken, müssen Microsoft Word und Visual Studio auf Ihrem Rechner installiert sein. Alternativ können Sie IronWord für die Dokumentenverarbeitung verwenden, was keine Installation von Microsoft Word erfordert.

Wie kann ich eine neue Konsolenanwendung in Visual Studio für den Word-Dokument-Druck einrichten?

Um eine neue Konsolenanwendung in Visual Studio einzurichten, öffnen Sie die IDE, wählen Sie 'Neues Projekt erstellen', suchen Sie nach 'Konsolen-App', wählen Sie die C#-Vorlage und benennen Sie Ihr Projekt entsprechend.

Wie füge ich eine Referenz zur Microsoft Interop-Bibliothek für den Word-Dokument-Druck hinzu?

In Visual Studio, Rechtsklick auf Ihr Projekt, wählen Sie Hinzufügen > Referenz, und unter der COM-Registerkarte wählen Sie 'Microsoft Word xx.x Object Library'. Mit IronWord können Sie Word-Dokumente verwalten, ohne COM-Referenzen zu benötigen.

Welche Rolle spielt das Document-Objekt in den Word-Interop-Diensten?

Das Document-Objekt in Interop-Diensten stellt ein Microsoft Word-Dokument dar und ermöglicht die programmatische Manipulation des Dokuments. IronWord bietet ähnliche Funktionen mit verbesserter Leistung und Effizienz.

Wie kann ich ein Word-Dokument mit Standardeinstellungen im Drucker in C# drucken?

Sie können ein Word-Dokument mit Standardeinstellungen im Drucker drucken, indem Sie die Methode wordDoc.PrintOut() in Interop verwenden. IronWord bietet einen optimierten Druckprozess mit mehr Kontrolle über die Einstellungen.

Welche Schritte sind erforderlich, um Druckeinstellungen für Word-Dokumente in C# anzupassen?

Um Druckeinstellungen anzupassen, wie z.B. die Anzahl der Kopien oder den Seitenbereich, verwenden Sie die Methode PrintOut mit angegebenen Parametern wie Copies: ref copies und Pages: ref pages. IronWord bietet ähnliche Optionen für anpassbaren Druck.

Wie funktioniert der stille Druck von Word-Dokumenten in C#?

Der stille Druck ermöglicht es, Dokumente ohne Benutzereingriff zu drucken, indem der Background-Parameter in der Methode wordDoc.PrintOut(Background: ref background) auf false gesetzt wird. IronWord unterstützt stillen Druck effizient.

Wie kann ich einen anderen Drucker als den Standarddrucker für den Druck von Word-Dokumenten in C# auswählen?

Sie können einen anderen Drucker angeben, indem Sie wordApp.ActivePrinter auf den Namen des gewünschten Druckers setzen, bevor Sie wordDoc.PrintOut() ausführen. IronWord ermöglicht ähnliche Funktionalität für die Druckerauswahl.

Welche Vorteile bietet die Verwendung von IronWord für die Verarbeitung von Word-Dokumenten in C#?

IronWord bietet eine robuste und effiziente Verarbeitung von Word-Dokumenten, ermöglicht nahtloses Lesen, Schreiben und Bearbeiten von DOCX-Dateien in C# ohne die Notwendigkeit einer Microsoft Word Installation.

Wie kann ich beim Drucken von Word-Dokumenten in C# einen Druckdialog zur Anpassung einführen?

Um einen Druckdialog einzuführen, verwenden Sie die PrintDialog-Klasse, um Benutzern die Auswahl von Druckereinstellungen zu ermöglichen, und setzen Sie dann wordApp.ActivePrinter auf den ausgewählten Druckernamen vor dem Drucken. IronWord unterstützt auch benutzerangepasste Druckdialoge.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen