C# Drukuj samouczek Word: Przewodnik krok po kroku
Witamy w tym samouczku, w którym omówimy, jak drukować dokumenty WORDa przy użyciu Microsoft Interop w aplikacji konsolowej C#. Ten przyjazny dla początkujących przewodnik przeprowadzi Cię przez kolejne etapy programowego drukowania dokumentów Microsoft WORD.
Wymagania wstępne
Zanim zagłębimy się w kod, konieczne jest skonfigurowanie kilku rzeczy:
-
Instalacja programu Microsoft WORD: Upewnij się, że masz zainstalowany program Microsoft WORD w swoim systemie. Jeśli nie, przejdź do oficjalnej strony Microsoftu na swoim komputerze lub do sklepu z aplikacjami, aby ją zainstalować.
-
Konfiguracja Visual Studio: Należy zainstalować Visual Studio z możliwością tworzenia aplikacji konsolowych. Jeśli dopiero zaczynasz, rozważ pobranie Visual Studio Community, które jest bezpłatne i wystarczające do naszych potrzeb.
- Dokument WORD: Przygotuj na swoim komputerze przykładowy dokument WORD do celów testowych. Będzie to dokument, który wyślemy do drukarni.
Konfiguracja środowiska
Utwórz nową aplikację konsolową
- Otwórz program Visual Studio.
- Kliknij "Utwórz nowy projekt".
- Wyszukaj "Console App" i wybierz odpowiedni szablon C#.
- Nadaj nazwę projektowi (np. "InteropPrintConsoleTutorial") i wybierz odpowiednią lokalizację.
Dodanie odniesienia do Interop
Korzystanie z Interop wymaga odwołania do biblioteki Microsoft Office Interop. Oto jak to dodać:
- W programie Visual Studio kliknij prawym przyciskiem myszy projekt Console w oknie Solution Explorer.
- Przejdź do opcji Dodaj > Odwołanie.
- W oknie Menedżera odwołań przejdź do karty COM.
- Wpisz "Microsoft WORD" w pasku wyszukiwania, aby zawęzić listę.
- Z wyników wybierz "Microsoft WORD xx.x Object Library" (gdzie xx.x oznacza numer wersji).
- Kliknij przycisk OK, aby dodać odnośnik.
Można je również zainstalować za pomocą menedżera pakietów NuGet.

Sprawdź ustawienia aplikacji
Upewnij się, że framework docelowy Twojej aplikacji jest kompatybilny z biblioteką Interop. Można to sprawdzić, klikając prawym przyciskiem myszy na projekt w Solution Explorer, wybierając Properties, a następnie przeglądając Target framework w zakładce Application. Jeśli napotkasz problemy z wersją biblioteki Interop, rozważ pobranie niezbędnego pakietu lub zestawu lub dostosowanie docelowej wersji platformy.
Po skonfigurowaniu środowiska można przystąpić do procesu kodowania.
Zrozumienie obiektu Document
Obiekt dokumentu stanowi serce usług Interop podczas pracy z dokumentami programu WORD. Ten obiekt reprezentuje dokument WORD i zapewnia wszystkie jego funkcje.
Częstym zadaniem jest otwieranie dokumentu:
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)
Liczne parametry z ref oMissing mogą wydawać się przytłaczające, ale są niezbędne dla metody Open, która oczekuje wielu argumentów, z których większość jest opcjonalna.
Wdrażanie funkcji PRINT
Po skonfigurowaniu środowiska i zapoznaniu się z obiektem dokumentu nadszedł czas, aby zagłębić się w podstawowe funkcje drukowania dokumentów WORD.
Podstawowe drukowanie dokumentów WORD
Aby wydrukować dokument, można użyć następującej metody:
// 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
Ta metoda wysyła dokument do domyślnej drukarki przy użyciu ustawień domyślnych.
Drukowanie dokumentów WORD z dostosowaniami
Jeśli chcesz wyświetlić okno dialogowe PRINT, dostosować ustawienia drukarki, a nawet wydrukować wiele stron, potrzebujesz bardziej szczegółowego podejścia:
// 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
W powyższym kodzie źródłowym określamy zakres stron i liczbę kopii, ale możliwości dostosowania są ogromne.
Dostosowywanie ustawień drukowania
Możliwość modyfikacji ustawień drukowania jest tym, co wyróżnia sterowanie programowe. Niezależnie od tego, czy chcesz dostosować ustawienia drukarki, zdefiniować konkretną drukarkę, czy nawet wydrukować dokument w tle, wszystko to jest w zasięgu ręki dzięki Interop.
Ciche drukowanie
Ciche drukowanie polega na wysłaniu dokumentu do drukarki bez żadnej interakcji ze strony użytkownika:
// 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)
Określanie drukarki
Aby wydrukować dokument na konkretnej drukarce innej niż domyślna:
// 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()
Zaawansowane ustawienia drukarki
Oprócz samego określenia drukarki może zaistnieć potrzeba dostosowania jej ustawień:
// 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
W ten sposób użytkownik może ręcznie dostosować ustawienia, takie jak orientacja, drukowanie dwustronne i inne.
Przedstawiamy IronWord
Chociaż Microsoft Interop zapewnia funkcje do zarządzania dokumentami WORD, nie jest tak solidny i wydajny, jak powinien być do poważnego zastosowania komercyjnego. Poznaj IronWord — doskonałą alternatywę dla Interop do przetwarzania plików Word DOCX. IronWord umożliwia płynne odczytywanie, zapisywanie i edycję plików Excel w języku C#. Dowiedz się więcej o tym, jak rozpocząć pracę z IronWord.

Wnioski
W tym samouczku omówiliśmy kroki związane z wykorzystaniem Microsoft Interop do programowego drukowania dokumentów Worda w aplikacji konsolowej C#. Widzieliśmy już, jak wyświetlić okno dialogowe drukowania, ustawić niestandardowe opcje drukowania oraz kontrolować różne aspekty drukowania, takie jak wybór określonej drukarki lub definiowanie zakresu stron. Chociaż Interop oferuje podstawowe funkcje, warto zauważyć, że istnieją potężne alternatywy, takie jak IronWord.
Często Zadawane Pytania
Jakie są wymagania wstępne dotyczące drukowania dokumentów Word w języku C#?
Aby drukować dokumenty Worda w języku C#, musisz mieć zainstalowane na komputerze programy Microsoft Word i Visual Studio. Alternatywnie możesz użyć programu IronWord do przetwarzania dokumentów, który nie wymaga instalacji programu Microsoft Word.
Jak skonfigurować nową aplikację konsolową w Visual Studio do drukowania dokumentów WORD?
Aby skonfigurować nową aplikację konsolową w Visual Studio, otwórz środowisko IDE, wybierz opcję „Utwórz nowy projekt”, wyszukaj „Aplikacja konsolowa”, wybierz szablon C# i nadaj projektowi odpowiednią nazwę.
Jak dodać odniesienie do biblioteki Microsoft Interop służącej do drukowania dokumentów WORD?
W programie Visual Studio kliknij prawym przyciskiem myszy na swój projekt, wybierz Dodaj > Odwołanie, a następnie w zakładce COM wybierz „Biblioteka obiektów Microsoft WORD xx.x”. Dzięki IronWord możesz zarządzać dokumentami Worda bez konieczności korzystania z odwołań COM.
Jaka jest rola obiektu Document w usługach Word Interop?
Obiekt Document w usługach Interop reprezentuje dokument Microsoft WORD i umożliwia programową manipulację dokumentem. IronWord oferuje podobne możliwości przy zwiększonej wydajności i efektywności.
Jak wydrukować dokument WORDa przy użyciu domyślnych ustawień drukarki w języku C#?
Dokument WORD można wydrukować przy użyciu domyślnych ustawień drukarki za pomocą metody wordDoc.PrintOut() w Interop. IronWord oferuje usprawniony proces drukowania z większą kontrolą nad ustawieniami.
Jakie kroki należy wykonać, aby dostosować ustawienia drukowania dokumentów WORDa w języku C#?
Aby dostosować ustawienia drukowania, takie jak liczba kopii lub zakres stron, należy użyć metody PrintOut z określonymi parametrami, takimi jak Copies: ref copies i Pages: ref pages. IronWord oferuje podobne opcje dostosowywania drukowania.
Jak działa ciche drukowanie dokumentów WORDa w języku C#?
Drukowanie w tle pozwala na drukowanie dokumentów bez interakcji użytkownika poprzez ustawienie parametru Background na false w metodzie wordDoc.PrintOut(Background: ref background). IronWord skutecznie obsługuje drukowanie w tle.
Jak wybrać drukarkę inną niż domyślna do drukowania dokumentów WORDa w języku C#?
Można określić inną drukarkę, ustawiając wordApp.ActivePrinter na nazwę żądanej drukarki przed wykonaniem wordDoc.PrintOut(). IronWord umożliwia podobną funkcjonalność wyboru drukarki.
Jakie są zalety korzystania z IronWord do przetwarzania dokumentów WORD w języku C#?
IronWord oferuje solidne i wydajne przetwarzanie dokumentów Word, umożliwiając płynne odczytywanie, zapisywanie i manipulowanie plikami DOCX w języku C# bez konieczności instalowania programu Microsoft Word.
Jak mogę wprowadzić okno dialogowe drukowania umożliwiające dostosowanie ustawień podczas drukowania dokumentów WORDa w języku C#?
Aby wyświetlić okno dialogowe drukowania, należy użyć klasy PrintDialog, aby umożliwić użytkownikom wybór ustawień drukarki, a następnie przed drukowaniem ustawić wordApp.ActivePrinter na nazwę wybranej drukarki. IronWord obsługuje również okna dialogowe drukowania dostosowane przez użytkownika.




