Jak drukować za pomocą okna dialogowego w języku C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPrint oferuje Printer.ShowPrintDialog(): jedna metoda otwierająca rodzime okno dialogowe druku systemu operacyjnego, przechwytuje wybory użytkownika dotyczące drukarki i papieru, oraz wysyła dokument do kolejki druku. Zainstaluj jeden pakiet NuGet i napisz jedną linię kodu.

Okno dialogowe drukowania to standardowe okno systemu operacyjnego, które pozwala użytkownikom wybrać drukarkę, ustawić kopie, wybrać zakres stron i dostosować opcje papieru przed podjęciem decyzji o druku. Aplikacje desktopowe, które muszą dać użytkownikom tę kontrolę przed każdym zadaniem, są głównym przypadkiem użycia.

Szybki start: Drukowanie za pomocą okna dialogowego

  1. Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint
  2. Skopiuj i uruchom ten fragment kodu.

    using IronPrint;
    
    // Display the print dialog and print the document
    Printer.ShowPrintDialog("document.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPrint w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak działa okno dialogowe PRINT w języku C#?

Metoda Printer.ShowPrintDialog() otwiera rodzime okno dialogowe druku systemu operacyjnego. Użytkownik widzi pełny zestaw opcji drukowania: wybór drukarki, liczba kopii, zakres stron, orientacja i rozmiar papieru. Klikają Drukuj, aby wysłać zadanie, lub Anuluj, aby zamknąć okno dialogowe bez drukowania.

Pod maską rodzime podejście .NET wymaga utworzenia instancji System.Windows.Forms.PrintDialog, powiązania go z PrintDocument, obsługi zdarzenia PrintPage w celu rysowania zawartości na powierzchni graficznej druku, sprawdzenia DialogResult i następnie wywołania PrintDocument.Print(). Taka konfiguracja zazwyczaj obejmuje 15–25 linii kodu. Nie zawiera również wbudowanego renderowania PDF ani obrazów (drukowanie PDF-a przez natywne okno dialogowe oznacza najpierw parsowanie PDF-a na strony do rysowania, co wymaga jeszcze innej biblioteki).

IronPrint obsługuje cały proces w jednym wywołaniu:

Dane wejściowe

quarterly-report.pdf przekazany do ShowPrintDialog, to stylizowane podsumowanie finansowe korporacji za trzeci kwartał z kartami wskaźników KPI i tabelami przychodów działów, reprezentujące typowy dokument biznesowy wysyłany do okna dialogowego druku.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;

// Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint

' Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf")
$vbLabelText   $csharpLabel

Wynik

Natywne okno dialogowe drukowania otwarte przez ShowPrintDialog

Natywne okno dialogowe drukowania otwarte przez ShowPrintDialog dla raportu kwartalnego.

Metoda akceptuje ścieżkę do pliku jako string lub surowe dane plikowe jako byte[]. IronPrint wykrywa format dokumentu, renderuje go za pomocą odpowiedniego silnika i wyświetla okno dialogowe. Po potwierdzeniu przez użytkownika dokument zostanie wydrukowany zgodnie z wybranymi ustawieniami. Samouczek dotyczący drukowania dokumentów szczegółowo omawia cały cykl drukowania.

Jak wstępnie skonfigurować ustawienia okna dialogowego?

Możemy ustawić domyślne wartości przed otwarciem okna dialogowego, tworząc obiekt PrintSettings i przekazując go jako drugi parametr. Okno dialogowe otworzy się z wstępnie zaznaczonymi wartościami, a użytkownik może je zaakceptować bez zmian lub zmienić dowolne ustawienie.

Dane wejściowe

invoice.pdf wstępnie załadowany z ustawieniami portretu A4 przy 300 DPI: profesjonalna faktura z pozycjami, rabatem, podatkiem i instrukcjami przelewu bankowego, pokazująca realistyczny dokument, w którym aplikacja już zna wymaganą wielkość papieru i orientację.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;

// Pre-configure default dialog settings
var settings = new PrintSettings
{
    PrinterName = "HP LaserJet Pro",
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    Grayscale = false
};

// Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint

' Pre-configure default dialog settings
Dim settings As New PrintSettings With {
    .PrinterName = "HP LaserJet Pro",
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .Grayscale = False
}

' Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
$vbLabelText   $csharpLabel

Wynik

Okno dialogowe drukowania systemu Windows z wstępnie skonfigurowanymi ustawieniami

Natywne okno dialogowe drukowania otwarte z wstępnie skonfigurowanymi ustawieniami portretu A4.

Jest to przydatne, gdy aplikacja z góry zna prawdopodobny format drukarki lub papieru. Na przykład w systemie punktu sprzedaży, który zawsze drukuje paragony na określonej drukarce termicznej, można ustawić domyślnie PrinterName na to urządzenie. Użytkownik nadal ma możliwość jego zmiany w oknie dialogowym.

Aby odkryć, które drukarki są dostępne w systemie, wywołujemy Printer.GetPrinterNames(), które zwraca List<string> wszystkich zainstalowanych drukarek. Podobnie, Printer.GetPrinterTrays() zwraca dostępne zasobniki papieru dla danej drukarki.

Pełna lista konfigurowalnych właściwości obejmuje PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten (dla pól formularzy PDF) i Tray. Poradnik dotyczący ustawień drukowania omawia każdą właściwość wraz z przykładami kodu. Każda właściwość, która nie jest ustawiona w PrintSettings, domyślnie przyjmuje standardową konfigurację wybranej drukarki.

Jak wyświetlić okno dialogowe asynchronicznie?

Metoda Printer.ShowPrintDialogAsync() zwraca Task, co czyni ją kompatybilną z await. Zapobiega to blokowaniu kanału UI przez okno dialogowe, co jest kluczowe dla WPF, MAUI oraz każdej aplikacji, w której zamrożony interfejs stwarza złe doświadczenia użytkownika.

Dane wejściowe

Raport.pdf oczekiwany asynchronicznie: wieloczęściowy raport dotyczący infrastruktury IT i bezpieczeństwa, reprezentujący rodzaj dokumentu z długiej formy, gdzie prezentacja okna dialogowego bez blokowania utrzymuje responsywność interfejsu podczas ładowania pliku.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;

// Open the print dialog asynchronously
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint

' Open the print dialog asynchronously
Await Printer.ShowPrintDialogAsync("report.pdf")
$vbLabelText   $csharpLabel

Wynik

Asynchroniczne okno dialogowe drukowania otwarte poprzez ShowPrintDialogAsync

Natywne okno dialogowe drukowania otwarte asynchronicznie poprzez ShowPrintDialogAsync, z konsolą potwierdzającą wykonanie bez blokowania.

ShowPrintDialogAsync() przyjmuje te same parametry co wersja synchroniczna: ścieżkę do pliku lub tablicę bajtów, plus opcjonalny obiekt PrintSettings. Wzorzec asynchroniczny opiera się na tym samym wzorcu asynchronicznym opartym na zadaniach, który jest stosowany we współczesnym programowaniu w środowisku .NET.

IronPrint działa w aplikacjach WinForms, WPF, MAUI i konsolowych. Wygląd okna dialogowego dostosowuje się do platformy hosta i wersji systemu operacyjnego, dzięki czemu użytkownik zawsze widzi natywne okno drukowania, którego oczekuje.

Kiedy należy używać drukowania z oknem dialogowym, a kiedy drukowania w tle?

Używaj okna dialogowego, gdy użytkownicy muszą wybrać ustawienia drukarki przed każdym zadaniem; używaj cichego drukowania dla zautomatyzowanych przepływów pracy, gdzie nie jest potrzebna decyzja ludzka.

Kryteria Drukuj z oknem dialogowym Ciche drukowanie
Interakcja z użytkownikiem Użytkownik wybiera drukarkę, liczbę kopii, zakres stron Brak interakcji; prints immediately
Najlepsze dla Aplikacje desktopowe, pojedyncze wydruki, funkcje dla użytkowników Zadania wsadowe, usługi działające w tle, aplikacje kioskowe
Wybór drukarki Użytkownik dokonuje wyboru w oknie dialogowym Ustaw programowo przez PrintSettings
Metoda IronPrint Printer.ShowPrintDialog() Printer.Print()
Wariant asynchroniczny ShowPrintDialogAsync() PrintAsync()

Eksporty raportów, drukowanie faktur i każde zadanie, w którym niewłaściwa drukarka marnuje materiały, są dobrymi kandydatami do okna dialogowego. Ciche drukowanie pasuje do zautomatyzowanych przepływów pracy, gdzie nie jest potrzebna decyzja ludzka między dokumentami.

Jakie formaty plików obsługuje okno dialogowe PRINT?

Printer.ShowPrintDialog() obsługuje te same formaty co cichy druk: PDF, PNG, TIFF, JPEG, GIF, HTML i BMP. Przekazujemy ścieżkę do pliku niezależnie od formatu, a IronPrint zajmuje się renderowaniem i komunikacją z kolejką druku. Dane plikowe jako byte[] również są akceptowane, co jest przydatne, gdy dokument jest generowany w pamięci lub pobierany z bazy danych.

Dane wejściowe

monthly-report.pdf odczytany do byte[], reprezentuje dokument pobrany z bazy danych lub wygenerowany w pamięci przed wysłaniem do okna dialogowego.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;

// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");

// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint

' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")

' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
$vbLabelText   $csharpLabel

Wynik

Okno dialogowe otwiera się, jak widać w powyższych przykładach. Wykrywanie formatu jest automatyczne: bez względu na to, czy przekazujemy ścieżkę do pliku, czy byte[], IronPrint renderuje dokument i prezentuje to samo rodzime okno dialogowe.

Strona z przykładami kodu przedstawia dodatkowe scenariusze specyficzne dla poszczególnych formatów. Dla specyficznych przepływów pracy z PDF-ami (generowanie PDF-a i drukowanie go natychmiast), IronPDF naturalnie współpracuje z IronPrint.

Kolejne kroki

Drukowanie z oknem dialogowym sprowadza się do dwóch metod: Printer.ShowPrintDialog() dla wywołań synchronicznych i Printer.ShowPrintDialogAsync() dla wykonania nieblokującego. Skonfiguruj domyślne ustawienia z PrintSettings i pozwól użytkownikowi je dostosować. Obie metody obsługują wszystkie formaty dokumentów IronPrint i działają w projektach WinForms, WPF, MAUI oraz konsolowych.

Zapoznaj się z samouczkami IronPrint, aby uzyskać pełne instrukcje, Dokumentacją API klasy Printer zawierającą wszystkie dostępne metody lub instrukcją dotyczącą ustawień drukowania, aby uzyskać informacje na temat zaawansowanej konfiguracji. Lista zmian zawiera informacje o ostatnich ulepszeniach i nowych funkcjach.

Rozpocznij bezpłatny 30-dniowy okres próbny, aby przetestować drukowanie z oknem dialogowym w rzeczywistym projekcie, bez wymogu posiadania karty kredytowej. Gdy jesteś gotowy do wysyłki, zobacz opcje licencyjne, zaczynając od $999.

Często Zadawane Pytania

Jaka jest główna funkcja IronPrint?

IronPrint umożliwia programistom wyświetlanie i konfigurację okna dialogowego drukowania w aplikacjach C#, co ułatwia drukowanie plików PDF i obrazów przy użyciu wcześniej skonfigurowanych ustawień.

Jak mogę wyświetlić okno dialogowe drukowania za pomocą IronPrint?

Można wyświetlić okno dialogowe drukowania w aplikacji C# korzystając z metody ShowPrintDialog() IronPrint, która zapewnia interaktywny sposób konfigurowania ustawień drukowania.

Czy IronPrint wspiera drukowanie asynchroniczne?

Tak, IronPrint obsługuje asynchroniczne drukowanie, co pozwala na utrzymanie aplikacji responsywnej podczas obsługi zadań drukowania.

Czy mogę wstępnie skonfigurować ustawienia drukowania w IronPrint?

Tak, IronPrint umożliwia wstępną konfigurację ustawień drukowania, takich jak rozmiar papieru, orientacja i wybór drukarki przed wyświetleniem okna dialogowego drukowania.

Czy można drukować obrazy za pomocą IronPrint?

IronPrint obsługuje drukowanie zarówno plików PDF, jak i obrazów, zapewniając elastyczność dla różnych typów dokumentów w aplikacji C#.

Jak IronPrint poprawia doświadczenie z oknem dialogowym drukowania w C#?

IronPrint poprawia doświadczenie z oknem dialogowym drukowania, pozwalając programistom na łatwe dostosowanie i konfigurację ustawień drukowania, wspierając operacje synchroniczne i asynchroniczne.

Jakie typy dokumentów mogę drukować za pomocą IronPrint?

Za pomocą IronPrint można drukować różnorodne dokumenty, w tym pliki PDF i obrazy, bezpośrednio z aplikacji C#.

Czy IronPrint można zintegrować z istniejącymi aplikacjami C#?

Tak, IronPrint został zaprojektowany w taki sposób, aby można go było łatwo zintegrować z istniejącymi aplikacjami C#, oferując prosty sposób dodawania funkcji okna dialogowego drukowania.

Jakie korzyści oferuje IronPrint programistom C#?

IronPrint oferuje zalety takie jak łatwa integracja, dostosowywalne ustawienia drukowania, wsparcie dla drukowania asynchronicznego oraz możliwość drukowania plików PDF i obrazów.

Jak IronPrint obsługuje różne konfiguracje drukarek?

IronPrint pozwala na konfigurację różnych ustawień drukarki, zapewniając kompatybilność z różnymi drukarkami i dostosowanie do specyficznych potrzeb drukowania.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 44,435 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Chcesz szybkiego dowodu? PM > Install-Package IronPrint
uruchom próbkę obserwuj, jak twój dokument trafia do drukarki.