Jak określić nazwę drukarki w języku C
Klasa PrintSettings w IronPrint udostępnia własność PrinterName, która kieruje zadania drukowania do wybranej drukarki. Przypisujemy dokładną nazwę docelowej drukarki jako ciąg znaków, przekazujemy skonfigurowany obiekt PrintSettings do dowolnej metody drukowania IronPrint, a dokument trafia do tej drukarki zamiast 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
-
Install IronPrint with NuGet Package Manager
-
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łasności PrinterName na obiekcie PrintSettings. Następnie przekazujemy ten obiekt do Printer.Print.
Dane wejściowe
invoice.pdf to wystylizowana faktura A4 B2B z pozycjami liniowymi i sumami, drukowana na określoną nazwą drukarkę za pomocą PrintSettings.PrinterName.
: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";
// Print 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"
' Print to the specified printer
Printer.Print("invoice.pdf", settings)
Najpierw inicjujemy PrintSettings, co inicjalizuje się za pomocą PrinterName = null, co oznacza domyślną drukarkę systemu operacyjnego. Następnie nadpisujemy PrinterName dokładną nazwą drukarki docelowej jako ciągiem znaków. Gdy wywołujemy Printer.Print, IronPrint bezpośrednio wysyła zadanie do kolejki tej drukarki.
Wynik
Faktura jest wysyłana bezpośrednio do nazwanej drukarki. Zadanie pojawia się w kolejce drukarki, jak pokazano w przykładzie cichego drukowania.
Wydruk faktury wykonano na "Microsoft Print to PDF" używając PrinterName.
Dwie szczegóły do zapamiętania. Po pierwsze, nazwa drukarki musi dokładnie pasować do tego, co podaje system operacyjny; to porównanie uwzględnia wielkość liter. Niezgodność taka jak "hp laserjet" zamiast "HP LaserJet" zakończy się cicho niepowodzeniem lub wyrzuci błąd. Po drugie, jeśli użytkownik otworzy dialog drukowania przez ShowPrintDialog, wybór w dialogu nadpisuje na cokolwiek ustawionego w kodzie PrinterName, dając użytkownikom ostateczną kontrolę.
Jeśli nazwa drukarki nie jest znana z góry, możemy zapytać o wszystkie zainstalowane drukarki w czasie uruchomienia zamiast twardo kodować wartość.
Jak sprawdzić dostępne drukarki?
Zamiast hardkodowania nazw drukarek, możemy zapytać system w czasie działania używając Printer.GetPrinterNames. Ta metoda zwraca List<string> zawierający każdą zainstalowaną drukarkę na maszynie.
Dane wejściowe
report.pdf to raport biznesowy A4 z sekcją podsumowania i tabelą danych, wydrukowany na pierwszej dynamicznie odkrytej drukarce.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-discover-printers.cs
using IronPrint;
// List every installed printer
List<string> printers = Printer.GetPrinterNames();
// Print each printer name
foreach (string name in printers)
{
Console.WriteLine(name);
}
// Print to the first available printer
if (printers.Count > 0)
{
Printer.Print("report.pdf", new PrintSettings
{
PrinterName = printers[0]
});
}
Imports IronPrint
' List every installed printer
Dim printers As List(Of String) = Printer.GetPrinterNames()
' Print each printer name
For Each name As String In printers
Console.WriteLine(name)
Next
' Print to the first available printer
If printers.Count > 0 Then
Printer.Print("report.pdf", New PrintSettings With {
.PrinterName = printers(0)
})
End If
Wywołujemy GetPrinterNames, aby pobrać każdą drukarkę, którą zna system operacyjny, w tym lokalne, sieciowe i wirtualne, takie jak "Microsoft Print to PDF." Następnie iterujemy przez listę i wybieramy drukarkę po indeksie, dopasowaniu nazw lub dowolnej niestandardowej logice, jakiej wymaga aplikacja.
Wynik
Raport jest wysyłany do pierwszej dostępnej drukarki. Zadanie pojawia się w kolejce drukarki, jak pokazano powyżej.
Wydruk raportu wykonany na pierwszej dostępnej drukarce przy użyciu GetPrinterNames.
Ten wzorzec "znajdz i wydrukuj" jest istotny dla aplikacji wdrazanych na różnych maszynach. Hardcoding nazwy drukarki działa dla scenariuszy jednomezynowych, ale aplikacje produkcyjne powinny zapytac o dostępne drukarki i albo pozwolić użytkownikówi wybrac, albo wybrac jedna programowo na podstawie konwencji nazw.
Wybór drukarki można również sparować z rozmiarem papieru, DPI, liczba kopii i marginesami w jednym obiekcie konfiguracji.
Jak połączyć nazwę drukarki z innymi ustawieniami?
Klasa PrintSettings udostępnia PrinterName wraz z właściwościami dotyczącymi rozmiaru papieru, orientacji, DPI, marginesów, liczby kopii i innych. Konfigurujemy wszystko w jednym obiekcie.
Dane wejściowe
quarterly-report.pdf to kwartalny raport finansowy A4 z kartami KPI i wykresami, drukowany za pomocą PrinterName w połączeniu z rozmiarem papieru, DPI i liczbą kopii w jednym obiekcie PrintSettings.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-combined-settings.cs
using IronPrint;
// Configure full print settings with a named 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 the quarterly report
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint
' Configure full print settings with a named 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 the quarterly report
Printer.Print("quarterly-report.pdf", settings)
Używamy składni inicjalizacji obiektu dla czytelności. PrinterName kieruje zadanie do "Drukarki Kolorowej Biura", podczas gdy pozostałe właściwości kontrolują format wyjściowy. Dpi przy 300 zapewnia ostre teksty i grafikę. PaperMargins akceptuje wartości w milimetrach przez konstruktor Margins. Dla pełnej listy dostępnych właściwości, zobacz przewodnik dotyczący ustawień drukowania.
Wynik
Kwartalny raport drukuje się z nazwanej drukarki, A4 pionowy, 300 DPI, 2 kopie, i 15 mm marginesy połączone w jedno zadanie. Zadanie pojawia się w kolejce drukarki, jak pokazano powyżej.
Wydruk kwartalnego raportu z PrinterName, A4, 300 DPI, 2 kopie i 15 mm marginesy.
IronPrint waliduje konfigurację jako jednostkę i przesyła skonsolidowane ustawienia do sterownika drukarki w jednym zgloszeniu.
Aplikacje, które nie mogą blokować głównego wątku podczas odkrywania drukarek lub drukowania, mogą używać asynchronicznych odpowiedników obu operacji.
Jak wybrać drukarkę i drukować asynchronicznie?
Dla aplikacji WPF i WinForms, gdzie blokowanie głównego wątku nie jest opcją, używamy Printer.GetPrinterNamesAsync oraz Printer.PrintAsync. Obydwa zwracają Task, utrzymując interfejs użytkownika responsywnym.
: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 available printers asynchronously
List<string> printers = await Printer.GetPrinterNamesAsync();
// Exit if no printers are installed
if (printers.Count == 0)
{
Console.WriteLine("No printers found.");
return;
}
// Configure settings for the first available printer
PrintSettings settings = new PrintSettings
{
PrinterName = printers[0],
Dpi = 300
};
// Print asynchronously
await Printer.PrintAsync(filePath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class PrintService
Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
' Discover available printers asynchronously
Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()
' Exit if no printers are installed
If printers.Count = 0 Then
Console.WriteLine("No printers found.")
Return
End If
' Configure settings for the first available printer
Dim settings As New PrintSettings With {
.PrinterName = printers(0),
.Dpi = 300
}
' Print asynchronously
Await Printer.PrintAsync(filePath, settings)
End Function
End Class
Ten przykład oparty na klasach otacza logikę odkrywania i drukowania w wielokrotnego użytku usługę. Wywołujemy GetPrinterNamesAsync, aby pobrać listę drukarek bez zamrażania interfejsu użytkownika, następnie przypisujemy pierwszą dostępną drukarkę do PrinterName. Wywołanie await Printer.PrintAsync wysyła zadanie asynchronicznie.
Wynik
Faktura jest drukowana asynchronicznie na pierwszej odkrytej drukarce. Zadanie pojawia się w kolejce drukarki, jak pokazano powyżej.
Wydruk faktury wykonywany asynchronicznie na pierwszej dostępnej drukarce.
W produkcji możemy zastąpić printers[0] logiką, która odpowiada konwencji nazewnictwa, takiej jak wyszukiwanie drukarek zawierających "Etykieta" na potrzeby etykiet wysyłkowych lub "Kolor" dla dokumentów markowych. Asynchroniczne metody IronPrint wszystkie akceptują ten sam obiekt PrintSettings, więc zachowanie PrinterName jest identyczne pomiędzy ścieżkami synchronicznymi a asynchronicznymi.
Pokryte zostały przypisanie statyczne, odkrywanie w czasie uruchomienia, połączone ustawienia i asynchroniczne przepływy pracy, kilka pokrewnych zasobów jest wart zaznaczenia.
Jakie są moje kolejne kroki?
Omówiliśmy określanie nazwy drukarki za pomocą PrintSettings.PrinterName, od statycznego przypisania po dynamiczne odkrywanie w czasie działania z Printer.GetPrinterNames. Kluczowe punkty: nazwy drukarek muszą dokładnie pasować (uwzględniające wielkość liter), null domyślnie używa domyślnej drukarki systemowej, a dialogi drukowania nadpisują wybór programowy.
Przykład get printer names dostarcza samodzielnego fragmentu do odkrywania, podczas gdy przewodnik dotyczący ustawień drukowania szczegółowo omawia każdą konfigurowalną właściwość. API referencyjne klasy Printer dokumentuje wszystkie statyczne metody drukowania, a API referencyjne PrintSettings wymienia każde pole i wartość domyślną. Dla całościowego przejścia, samouczek drukowania dokumentu łączy wszystko w całość.
Rozpocznij bezpłatny 30-dniowy okres próbny, aby przetestować wybór drukarki w działającym projekcie. Gdy będziesz gotowy, zobacz opcje licencjonowania zaczynające się od $999.
https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html https://ironsoftware.com/csharp/print/how-to/print-settings/https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html
Często Zadawane Pytania
Jak mogę określić nazwę drukarki w C# używając IronPrint?
Za pomocą IronPrint można określić nazwę drukarki w C# poprzez ustawienie właściwości PrinterName. To pozwala na ukierunkowanie konkretnej drukarki do zadań drukowania.
Czym jest IronPrint?
IronPrint jest to biblioteka od Iron Software, która umożliwia programistom zarządzanie zadaniami drukowania w aplikacjach C#, zapewniając funkcjonalność do określenia nazw drukarek i innych opcji drukowania.
Jak odkryć dostępne drukarki w C#?
Używając IronPrint, można łatwo znaleźć dostępne drukarki w sieci poprzez uzyskanie listy drukarek i wybór pożądanego PrinterName do zadania drukowania.
Czy mogę ustawić właściwość PrinterName dynamicznie?
Tak, z IronPrint można dynamicznie ustawiać właściwość PrinterName w kodzie C#, by wybierać pożądaną drukarkę w czasie wykonywania.
Czy możliwe jest drukowanie na drukarce sieciowej przy użyciu IronPrint?
Tak, IronPrint pozwala na określenie i drukowanie na drukarkach sieciowych poprzez ustawienie odpowiedniej właściwości PrinterName w aplikacji C#.

