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

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

: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 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ę.

: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 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.

: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() 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.

: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 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 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 produkt będzie gotowy do wysyłki, zapoznaj się z opcjami licencyjnymi, 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.

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 18

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 18
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

k

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 38

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 38
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

k

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 48

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 48
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

k
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 41,154 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

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