Jak określić nazwę drukarki w języku C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Klasa PrintSettings w IronPrint udostępnia właściwość PrinterName, która kieruje zadania drukowania do określonej 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 do domyślnej drukarki 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

  1. Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint
  2. 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"
    });
  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 określić nazwę drukarki w języku C#?

Określamy docelową drukarkę, przypisując jej nazwę do właściwości PrinterName obiektu PrintSettings. Następnie przekazujemy ten obiekt do Printer.Print.

Dane wejściowe

invoice.pdf to stylizowana faktura B2B w formacie A4 z pozycjami i sumami, drukowana na konkretnej drukarce o nazwie 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)
$vbLabelText   $csharpLabel

Najpierw instancjonujemy PrintSettings, co inicjuje PrinterName = null, czyli domyślną drukarkę systemu operacyjnego. Następnie zastępujemy PrinterName dokładną nazwą docelowej drukarki. Kiedy wywołujemy Printer.Print, IronPrint wysyła zadanie bezpośrednio 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 rozróżnia wielkość liter. Niezgodność, taka jak "hp laserjet" zamiast "HP LaserJet", zakończy się niepowodzeniem bez komunikatu lub wygeneruje błąd. Po drugie, jeśli użytkownik otworzy okno dialogowe drukowania za pomocą ShowPrintDialog, wybór w tym oknie zastępuje ustawienia PrinterName z kodu, 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 na stałe wpisywać nazwy drukarek, możemy wysłać zapytanie do systemu w czasie wykonywania za pomocą Printer.GetPrinterNames. Ta metoda zwraca List<string> zawierający wszystkie drukarki zainstalowane na komputerze.

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
$vbLabelText   $csharpLabel

Wywołujemy GetPrinterNames, aby pobrać wszystkie drukarki znane systemowi operacyjnemu, w tym drukarki lokalne, sieciowe i wirtualne, takie jak "Microsoft Print to PDF". Następnie przeglądamy listę i wybieramy drukarkę na podstawie indeksu, dopasowania nazwy lub dowolnej niestandardowej logiki wymaganej przez aplikację.

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 parametrów. Konfigurujemy wszystko w jednym obiekcie.

Dane wejściowe

quarterly-report.pdf to kwartalny raport finansowy w formacie A4 zawierający karty KPI i wykresy, wydrukowany przy użyciu PrinterName w połączeniu z rozmiarem papieru, rozdzielczością 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)
$vbLabelText   $csharpLabel

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 przy rozdzielczości 300 zapewnia ostry tekst i grafikę. PaperMargins akceptuje wartości w milimetrach poprzez 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?

W przypadku aplikacji WPF i WinForms, w których blokowanie głównego wątku nie wchodzi w grę, używamy Printer.GetPrinterNamesAsync i Printer.PrintAsync. Oba zwracają Task, dzięki czemu interfejs użytkownika pozostaje responsywny.

: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
$vbLabelText   $csharpLabel

Ten przykład oparty na klasach zawiera logikę wykrywania i drukowania w usłudze wielokrotnego użytku. Wywołujemy GetPrinterNamesAsync, aby pobrać listę drukarek bez zawieszania interfejsu użytkownika, a 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 środowisku produkcyjnym możemy zastąpić printers[0] logiką zgodną z konwencją nazewniczą, np. wyszukiwaniem drukarek zawierających słowo "Label" w przypadku etykiet wysyłkowych lub "Color" w przypadku dokumentów firmowych. Wszystkie metody asynchroniczne IronPrint akceptują ten sam obiekt PrintSettings, więc zachowanie PrinterName jest identyczne w ścieżkach synchronicznych i asynchronicznych.

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 do dynamicznego wykrywania w czasie wykonywania za pomocą Printer.GetPrinterNames. Kluczowe punkty: nazwy drukarek muszą być dokładnie zgodne (z uwzględnieniem wielkości liter), null domyślnie ustawia drukarkę domyślną systemu operacyjnego, a okna dialogowe drukowania zastępują 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 tłumaczenie będzie gotowe, zapoznaj się z opcjami licencyjnymi, zaczynając 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/ 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#.

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.