IRONSOFTWAREHOME

Jak pobrać nazwy drukarek w języku C#

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

Znajomość drukarek dostępnych w systemie jest częstym warunkiem wstępnym dla każdej aplikacji .NET, która wysyła dokumenty do druku. Niezależnie od tego, czy celem jest umożliwienie użytkownikom wyboru drukarki z listy rozwijanej, czy automatyczne kierowanie zadań drukowania do określonego urządzenia, pierwszym krokiem jest programowe pobranie nazw drukarek.

IronPrint udostępnia pojedynczą metodę statyczną — Printer.GetPrinterNames() — która zwraca każdą zainstalowaną drukarkę na bieżącym komputerze z systemem Windows jako List<string>. Poniżej omówimy instalację, pobieranie synchroniczne i asynchroniczne oraz sposób podania nazwy wybranej drukarki w zadaniu drukowania.

Szybki start: Pobieranie nazw drukarek
  1. Zainstaluj IronPrint za pomocą NuGet: Install-Package IronPrint
  2. Dodaj using IronPrint; do pliku
  3. Wywołaj Printer.GetPrinterNames(), aby uzyskać List<string> nazw drukarek
  4. Iteruj po liście i wyświetlaj lub zapisuj każdą nazwę
  5. Przekaż wybraną nazwę do PrintSettings.PrinterName podczas drukowania
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

  2. 2Skopiuj i uruchom ten fragment kodu.

    using IronPrint;
    
    // Retrieve every printer installed on this machine
    List<string> printers = Printer.GetPrinterNames();
    
    foreach (var name in printers)
    {
        Console.WriteLine(name);
    }
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

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

Jak mogę wylistować wszystkie zainstalowane nazwy drukarek?

Printer.GetPrinterNames() przeszukuje system operacyjny i zwraca każdą zarejestrowaną drukarkę jako List<string>. Wywołujemy tę metodę raz i iterujemy po wyniku:

using IronPrint;
using System;
using System.Collections.Generic;

// List every installed printer
List<string> printerNames = Printer.GetPrinterNames();

Console.WriteLine($"Found {printerNames.Count} printer(s):\n");

// Print each printer name
foreach (string name in printerNames)
{
    Console.WriteLine($"  • {name}");
}

Wynik konsoli

Znaleziono 3 drukarki:

  • Microsoft Print to PDF
  • HP LaserJet Pro MFP M428
  • OneNote (wersja na komputery stacjonarne)
Text

Zwrócona lista zawiera drukarki lokalne, sieciowe i wirtualne sterowniki druku. Każdy łańcuch znaków odpowiada dokładnej nazwie pokazanej w panelu Windows Ustawienia > Drukarki i skanery, więc może być używany bezpośrednio w konfiguracji ustawień druku.

Jeśli nie ma zainstalowanych drukarek, metoda zwraca pustą listę zamiast rzucać wyjątek. Szybkie sprawdzenie printerNames.Count to wszystko, co jest potrzebne przed przedstawieniem opcji użytkownikowi.

Jak mogę pobrać nazwy drukarek asynchronicznie?

Dla aplikacji, w których blokowanie wątku UI jest niedopuszczalne — WPF, MAUI lub aplikacje webowe ASP.NET — IronPrint udostępnia Printer.GetPrinterNamesAsync(). Metoda zwraca Task<List<string>> i działa identycznie jak jej synchroniczny odpowiednik:

using IronPrint;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

// Retrieve printer names asynchronously
List<string> printerNames = await Printer.GetPrinterNamesAsync();

// Print each printer name
foreach (string name in printerNames)
{
    Console.WriteLine(name);
}

Wywołujemy await jak każde inne asynchroniczne API. Wynik to ten sam List<string>, zwracany przez GetPrinterNames(), więc nie jest konieczne dodatkowe parsowanie ani konwersja. Ten wzorzec asynchroniczny integruje się naturalnie z akcjami kontrolerów async Task i obsługą zdarzeń async void.

Jak mogę wydrukować na konkretną drukarkę według nazwy?

Gdy mamy nazwę drukarki, przypisujemy ją do PrintSettings.PrinterName i przekazujemy obiekt ustawień do Printer.Print(). To wysyła dokument bezpośrednio do wybranej drukarki bez wyświetlania dialogu:

using IronPrint;
using System.Collections.Generic;

// Retrieve available printers
List<string> printers = Printer.GetPrinterNames();

// Select a printer matching "LaserJet", or fall back to the first available
string targetPrinter = printers.Find(p => p.Contains("LaserJet"))
                       ?? printers[0];

// Configure print settings
PrintSettings settings = new PrintSettings
{
    PrinterName = targetPrinter,
    PaperSize = PaperSize.A4,
    NumberOfCopies = 1
};

// Print the document
Printer.Print("invoice.pdf", settings);

PrintSettings obsługuje dodatkowe właściwości, takie jak Dpi, PaperOrientation, Grayscale i PaperMargins. Zobacz pełną listę w dokumentacja API PrintSettings oraz przewodnik konfiguracji ustawień druku.

Również uzyskujemy dostępne zasobniki papieru dla danej drukarki używając Printer.GetPrinterTrays(printerName), co jest przydatne, gdy zadanie drukowania musi pobrać papier z określonego zasobnika.

Jakie są moje kolejne kroki?

Omówiliśmy cztery operacje: instalację IronPrint, wypisanie wszystkich nazw drukarek za pomocą GetPrinterNames(), uruchomienie tego samego zapytania asynchronicznie za pomocą GetPrinterNamesAsync(), oraz skierowanie dokumentu do konkretnej drukarki poprzez PrintSettings.PrinterName.

Dla dalszego czytania i głębszych przykładów, eksploruj te zasoby:

Samouczki IronPrint — Drukuj Dokument dla pełnego przewodnika po drukowaniu.

Uzyskaj bezpłatną licencję próbną, aby przetestować każdą funkcję w rzeczywistym środowisku, lub zobacz opcje licencyjne, gdy będziesz gotowy do wdrożenia.

Często Zadawane Pytania

Jaki jest najłatwiejszy sposób na pobranie nazw drukarek w C#?

Najłatwiejszym sposobem na pobranie nazw drukarek w C# jest użycie IronPrint .NET, które pozwala uzyskać listę zainstalowanych drukarek za pomocą jednego wywołania metody.

Czy mogę asynchronicznie pobrać nazwy drukarek używając IronPrint?

Tak, IronPrint .NET obsługuje operacje asynchroniczne, umożliwiając pobieranie nazw drukarek bez blokowania głównego wątku.

Czy możliwe jest drukowanie na konkretną drukarkę po nazwie za pomocą IronPrint?

Zdecydowanie, IronPrint .NET pozwala na określenie nazwy drukarki, dzięki czemu można drukować dokumenty bezpośrednio na dowolnej zainstalowanej drukarce wybranej przez użytkownika.

Czy IronPrint obsługuje pobieranie nazw drukarek na wszystkich platformach .NET?

IronPrint .NET jest zaprojektowany, aby działać z różnymi platformami .NET, umożliwiając płynne pobieranie nazw drukarek w różnych środowiskach.

Jak IronPrint obsługuje nazwy drukarek w środowisku sieciowym?

IronPrint .NET może pobierać nazwy drukarek zarówno z drukarek lokalnych, jak i sieciowych, co czyni go wszechstronnym narzędziem do użycia w różnych konfiguracjach sieciowych.

What additional properties can I configure with PrintSettings?

With `PrintSettings`, you can configure properties like `Dpi`, `PaperSize`, `PaperOrientation`, `Grayscale`, and `PaperMargins`.

How do I iterate over printer names in C# using IronPrint?

You can use a foreach loop to iterate over the list returned by `Printer.GetPrinterNames()`, allowing you to display or store each printer name.

Can IronPrint work with network and virtual printers?

Yes, the list returned by `Printer.GetPrinterNames()` includes local printers, network printers, and virtual print drivers.

Where can I find more information on printing settings in IronPrint?

You can refer to the [PrintSettings How-To Guide](https://ironsoftware.com/csharp/print/how-to/print-settings/) and the [API Reference](https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html) for detailed information.

Does IronPrint provide support for different paper trays?

Yes, you can use `Printer.GetPrinterTrays(printerName)` to retrieve available paper trays for a given printer.

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ęczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 46,090Wersja:2026.9właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i wyszukaj "IronPrint"
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

  1. Pobierz i rozpakuj IronPrint do takiej lokalizacji jak ~/Libs w katalogu Twojego rozwiązania
  2. W Eksploratorze rozwiązań Visual Studio kliknij prawym przyciskiem na Odwołania. Wybierz Przeglądaj i wybierz "IronPrint.dll"

Licencje od $999

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta