IronPrint udostępnia Printer.ShowPrintDialog(): metodę, która otwiera natywne okno dialogowe drukowania systemu operacyjnego, przechwytuje wybrane przez użytkownika ustawienia drukarki i papieru oraz wysyła dokument do kolejki drukowania. 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
Użytkownik wybiera drukarkę, liczbę kopii i zakres stron
Kliknij PRINT, aby wysłać dokument do wybranej drukarki
Sprawdź, czy dokument drukuje się z wybranymi ustawieniami PRINT
Jak działa okno dialogowe PRINT w języku C#?
Metoda Printer.ShowPrintDialog() otwiera natywne okno dialogowe drukowania 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.
W tle natywne podejście .NET wymaga utworzenia instancji System.Windows.Forms.PrintDialog, podłączenie jej do PrintDocument, obsługę zdarzenia PrintPage w celu narysowania treści na powierzchni graficznej wydruku, sprawdzenie DialogResult, a następnie wywołanie 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
Plik quarterly-report.pdf przekazany do ShowPrintDialog to sformatowane korporacyjne podsumowanie finansowe za III kwartał z kartami wskaźników KPI i tabelami przychodów poszczególnych działów, stanowiące typowy dokument biznesowy wysłany do okna dialogowego drukowania.
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 dla raportu kwartalnego.
Metoda akceptuje ścieżkę do pliku jako string lub surowe dane pliku 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ć wartości domyślne 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ę.
Jest to przydatne, gdy aplikacja z góry zna prawdopodobny format drukarki lub papieru. Na przykład system kasowy, który zawsze drukuje paragony na określonej drukarce termicznej, może domyślnie PrinterName przypisać to urządzenie. Użytkownik nadal ma możliwość zmiany tego ustawienia w oknie dialogowym.
Aby sprawdzić, jakie drukarki są dostępne w systemie, wywołujemy Printer.GetPrinterNames(), co zwraca List<string> zawierający listę wszystkich zainstalowanych drukarek. Podobnie, Printer.GetPrinterTrays() zwraca dostępne tace 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) oraz Tray. Poradnik dotyczący ustawień drukowania omawia każdą właściwość wraz z przykładami kodu. Wszelkie właściwości, które nie zostały ustawione w PrintSettings, przyjmują domyślną konfigurację wybranej drukarki.
Jak wyświetlić okno dialogowe asynchronicznie?
Metoda Printer.ShowPrintDialogAsync() zwraca Task, dzięki czemu jest kompatybilna 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.
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
Natywne okno dialogowe drukowania otwarte asynchronicznie poprzez ShowPrintDialogAsync, z konsolą potwierdzającą wykonanie bez blokowania.
ShowPrintDialogAsync() akceptuje te same parametry co wersja synchroniczna: ścieżkę do pliku lub tablicę bajtów oraz 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 za pomocą 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 drukowanie w tle: 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 buforem wydruku. Akceptowane są również dane plików w formacie byte[], co jest przydatne, gdy dokument jest generowany w pamięci lub pobierany z bazy danych.
Dane wejściowe
monthly-report.PDF wczytany do byte[], reprezentującego dokument pobrany z bazy danych lub wygenerowany w pamięci przed wysłaniem do okna dialogowego.
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 odbywa się automatycznie: niezależnie od tego, czy podamy ścieżkę do pliku, czy byte[], IronPrint renderuje dokument i wyświetla to samo 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 za pomocą okna dialogowego sprowadza się do dwóch metod: Printer.ShowPrintDialog() dla wywołań synchronicznych i Printer.ShowPrintDialogAsync() dla wykonywania nieblokującego. Wstępnie skonfiguruj domyślne ustawienia za pomocą PrintSettings i pozwól użytkownikowi na ich dostosowanie. Obie metody obsługują wszystkie formaty dokumentów IronPrint i działają w projektach WinForms, WPF, MAUI oraz konsolowych.
Zapoznaj się z samouczkamiIronPrint, 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.
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.