Jak określić nazwę drukarki w języku C
Klasa PrintSettings w IronPrint posiada właściwość PrinterName, która kieruje zadania drukowania do konkretnej drukarki. Przypisujemy dokładną nazwę docelowej drukarki jako łańcuch znaków, przekazujemy skonfigurowany obiekt PrintSettings do dowolnej z metod drukowania IronPrint print methods i dokument trafia do tej drukarki, a nie do domyślnej systemowej.
W tym przewodniku omówiono ustawianie nazwy drukarki, wykrywanie dostępnych drukarek w czasie wykonywania oraz łączenie wyboru drukarki z innymi ustawieniami drukowania.
Szybki start: Określ nazwę drukarki
- Zainstaluj IronPrint przez NuGet:
Install-Package IronPrint - Dodaj
using IronPrint;do pliku - Utwórz obiekt
PrintSettings - Ustaw
PrinterNamena dokładną nazwę docelowej drukarki - Przekaż ustawienia do
Printer.Print()lubPrinter.PrintAsync()
-
Install IronPrint with NuGet Package Manager
PM > Install-Package IronPrint -
Skopiuj i uruchom ten fragment kodu.
using IronPrint; // Print a document to a specific printer Printer.Print("report.pdf", new PrintSettings { PrinterName = "HP LaserJet Pro M404" }); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPrint w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj bibliotekę IronPrint C#
- Utwórz obiekt
PrintSettings - Ustaw
PrinterNamena nazwę docelowej drukarki - Przekaż ustawienia do
Printer.PRINT() - Uruchom projekt, aby wydrukować na wskazanej drukarce PRINT
Jak określić nazwę drukarki w języku C#?
Określamy docelową drukarkę, przypisując jej nazwę do właściwości PrinterName na obiekcie PrintSettings. Następnie przekazujemy ten obiekt do metody Printer.PRINT.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-set-printer-name.cs
using IronPrint;
// Configure print settings with a target printer
PrintSettings settings = new PrintSettings();
settings.PrinterName = "Microsoft Print to PDF";
// Send the document to the specified printer
Printer.Print("invoice.pdf", settings);
Imports IronPrint
' Configure print settings with a target printer
Dim settings As New PrintSettings()
settings.PrinterName = "Microsoft Print to PDF"
' Send the document to the specified printer
Printer.Print("invoice.pdf", settings)
Najpierw tworzymy instancję PrintSettings, która inicjalizuje się z PrinterName = null — oznacza to domyślną drukarkę systemu operacyjnego. Następnie nadpisujemy PrinterName dokładnym łańcuchem znaków nazwy docelowej drukarki. Kiedy wywołujemy Printer.Print, IronPrint wysyła zadanie bezpośrednio do kolejki tej drukarki.
Dwa istotne szczegóły, o których należy pamiętać. Po pierwsze, nazwa drukarki musi dokładnie odpowiadać temu, co raportuje system operacyjny — porównanie uwzględnia wielkość liter. Niedopasowanie jak "hp laserjet" zamiast "HP LaserJet" skończy się błędem lub brakiem działania. Po drugie, jeśli użytkownik otworzy okno dialogowe drukowania za pomocą ShowPrintDialog, wybór dokonany w tym oknie nadpisze to, co zostało ustawione dla PrinterName w kodzie. Tak zostało zaprojektowane — okno dialogowe zapewnia użytkownikom ostateczną kontrolę.
Jak sprawdzić dostępne drukarki?
Zamiast na stałe wpisywać nazwy drukarek, możemy zapytać system w czasie wykonywania za pomocą Printer.GetPrinterNames(). Ta metoda zwraca List<string> zawierającą wszystkie zainstalowane drukarki na maszynie.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-discover-printers.cs
using IronPrint;
// Discover all installed printers
List<string> printers = Printer.GetPrinterNames();
foreach (string name in printers)
{
Console.WriteLine(name);
}
// Use the first available printer
if (printers.Count > 0)
{
Printer.Print("report.pdf", new PrintSettings
{
PrinterName = printers[0]
});
}
Imports IronPrint
' Discover all installed printers
Dim printers As List(Of String) = Printer.GetPrinterNames()
For Each name As String In printers
Console.WriteLine(name)
Next
' Use the first available printer
If printers.Count > 0 Then
Printer.Print("report.pdf", New PrintSettings With {
.PrinterName = printers(0)
})
End If
Wywołujemy GetPrinterNames(), by pobrać wszystkie drukarki, jakie zna system operacyjny — włącznie z lokalnymi, sieciowymi i wirtualnymi jak „Microsoft Print to PDF". Następnie przechodzimy przez listę i wybieramy drukarkę po indeksie, dopasowaniu do nazwy lub według dowolnej logiki aplikacji.
Ten wzorzec „znajdź i wydrukuj" jest istotny dla aplikacji wdrażanych na różnych maszynach. Hardcoding nazwy drukarki działa dla scenariuszy jednomaczynowych, ale aplikacje produkcyjne powinny zapytać o dostępne drukarki i albo pozwolić użytkownikowi wybrać, albo wybrać jedną programowo na podstawie konwencji nazw. Dla przykladu z dedykowanym kodem zobacz przyklad pobierania nazw drukarek.
Jak połączyć nazwę drukarki z innymi ustawieniami?
Klasa PrintSettings udostępnia PrinterName wraz z właściwościami rozmiaru papieru, orientacji, DPI, marginesów, liczby kopii oraz spłaszczenia. Konfigurujemy wszystko w jednym obiekcie.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-combined-settings.cs
using IronPrint;
// Build a fully configured print job targeting a specific printer
PrintSettings settings = new PrintSettings
{
PrinterName = "Office Color Printer",
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(15, 15, 15, 15),
Grayscale = false
};
// Print a branded report to the color printer
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint
' Build a fully configured print job targeting a specific printer
Dim settings As New PrintSettings With {
.PrinterName = "Office Color Printer",
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(15, 15, 15, 15),
.Grayscale = False
}
' Print a branded report to the color printer
Printer.Print("quarterly-report.pdf", settings)
Używamy składni inicjalizacji obiektu dla czytelności. PrinterName kieruje zadanie do „Office Color Printer", podczas gdy pozostałe właściwości kontrolują format wyjściowy. Dpi na poziomie 300 produkuje wyraźny tekst i grafikę. PaperMargins akceptuje cztery wartości milimetrowe przez konstruktor Margins — góra, prawo, dół, lewo.
IronPrint waliduje konfigurację jako jednostkę i przesyła skonsolidowane ustawienia do sterownika drukarki w jednym zgłoszeniu. Dla dodatkowych opcji jak wybór zasobnika i tryb grayscale, zobacz pełny przewodnik ustawień drukowania.
Jak wybrać drukarkę i drukować asynchronicznie?
Dla aplikacji, gdzie blokowanie głównego wątku nie wchodzi w grę — takich jak WPF czy WinForms — używamy Printer.GetPrinterNamesAsync() i Printer.PrintAsync(). Obie zwracają Task, pozwalając na responsywność interfejsu.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-async-printer-select.cs
using IronPrint;
using System.Threading.Tasks;
public class PrintService
{
public async Task PrintToFirstAvailableAsync(string filePath)
{
// Discover printers without blocking the UI
List<string> printers = await Printer.GetPrinterNamesAsync();
if (printers.Count == 0)
{
Console.WriteLine("No printers found.");
return;
}
// Configure and print to the first available printer
PrintSettings settings = new PrintSettings
{
PrinterName = printers[0],
Dpi = 300
};
await Printer.PrintAsync(filePath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class PrintService
Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
' Discover printers without blocking the UI
Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()
If printers.Count = 0 Then
Console.WriteLine("No printers found.")
Return
End If
' Configure and print to the first available printer
Dim settings As New PrintSettings With {
.PrinterName = printers(0),
.Dpi = 300
}
Await Printer.PrintAsync(filePath, settings)
End Function
End Class
Ten przykład oparty na klasie obejmuje logikę wykrywania i drukowania w usłudze wielokrotnego użytku. Wywołujemy GetPrinterNamesAsync(), aby pobrać listę drukarek bez zamrażania interfejsu użytkownika, a następnie przypisujemy pierwszą dostępną drukarkę do PrinterName. Wywołanie await Printer.PrintAsync wysyła zadanie asynchronicznie.
W produkcji możemy zastąpić printers[0] logiką dopasowującą konwencję nazw — na przykład szukając drukarek zawierających "Label" dla etykiet wysyłkowych lub "Color" dla dokumentów firmowych. Asynchroniczne metody IronPrint akceptują wszystkie ten sam obiekt PrintSettings, a więc zachowanie PrinterName jest identyczne na ścieżkach synchronicznych i asynchronicznych.
Jakie są moje kolejne kroki?
Przedstawiliśmy, jak określić nazwę drukarki w C# używając właściwości PrintSettings.PrinterName IronPrint, od statycznego przypisania do dynamicznego wykrywania w czasie wykonania z Printer.GetPrinterNames(). Kluczowe punkty: nazwy drukarek muszą pasować dokładnie (wielkość liter ma znaczenie), null domyślnie ustawia się na domyślną drukarkę systemową, a okna dialogowe drukowania nadpisują wybór programowy.
Aby dalej poznawać możliwości IronPrint:
- Zobacz przyklad kodu pobierania nazw drukarek dla samodzielnego fragmentu wykrywania
- Zapoznaj się z pełnym przewodnikiem po konfiguracji ustawień drukowania dla wszystkich dostępnych właściwości
- Przejrzyj dokumentację API klasy Printer dla metod jak
PrintToPrinter,ShowPrintDialog, oraz zarządzanie zasobnikiem - Przeglądaj pełną dokumentację API dla
PrintSettings,PaperSize, iMargins
Rozpocznij bezpłatny 30-dniowy okres próbny, aby przetestować wybór drukarki we własnych projektach, lub zobacz opcje licencjonowania dla wdrożenia produkcyjnego.

