Wie lege ich den Druckernamen in C# fest?

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

Die PrintSettings-Klasse von IronPrint stellt eine PrinterName-Eigenschaft bereit, die Druckaufträge an einen bestimmten Drucker weiterleitet. Wir übergeben den genauen Namen des Zieldruckers als Zeichenfolge, übergeben das konfigurierte PrintSettings-Objekt an eine beliebige IronPrint-Druckmethode, und das Dokument wird an diesen Drucker statt an den Systemstandarddrucker gesendet.

Diese Anleitung führt durch das Festlegen eines Druckernamens, das Entdecken verfügbarer Drucker zur Laufzeit und die Kombination von Druckerauswahl mit anderen Druckeinstellungen.

Quickstart: Den Druckernamen angeben

  1. Installieren Sie IronPrint mit NuGet Package Manager

    PM > Install-Package IronPrint
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronPrint in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer

Wie gebe ich einen Druckernamen in C# an?

Wir geben den Zieldrucker an, indem wir seinen Namen der Eigenschaft PrinterName eines PrintSettings-Objekts zuweisen. Anschließend übergeben wir dieses Objekt an Printer.Print.

Eingabe

invoice.pdf ist eine formatierte A4-B2B-Rechnung mit Einzelposten und Summen, die über PrintSettings.PrinterName auf einem bestimmten benannten Drucker ausgedruckt wird.

: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

Zunächst instanziieren wir PrintSettings, das mit PrinterName = null initialisiert wird, also dem Standarddrucker des Betriebssystems. Anschließend überschreiben wir PrinterName durch den genauen String-Namen des Ziel-Druckers. Wenn wir Printer.Print aufrufen, sendet IronPrint den Auftrag direkt an die Warteschlange dieses Druckers.

Ausgabe

Die Rechnung wird direkt an den benannten Drucker gesendet. Der Auftrag erscheint in der Druckerwarteschlange, wie im Beispiel für leises Drucken zu sehen ist.

Rechnungsausgabe gedruckt auf "Microsoft Print to PDF" unter Verwendung von PrinterName.

Zwei Details, an die Sie denken sollten. Erstens, der Druckername muss exakt dem entsprechen, was das Betriebssystem meldet; Bei diesem Vergleich wird zwischen Groß- und Kleinschreibung unterschieden. Eine Nichtübereinstimmung wie "hp laserjet" anstelle von "HP LaserJet" führt zu einem stillen Fehler oder löst eine Fehlermeldung aus. Zweitens: Wenn der Benutzer über ShowPrintDialog einen PRINT-Dialog öffnet, überschreibt die Auswahl im Dialog alles, was im Code unter PrinterName festgelegt wurde, sodass der Benutzer die endgültige Kontrolle hat.

Wenn der Druckername nicht im Voraus bekannt ist, können wir zur Laufzeit anstatt der harten Kodierung den Wert alle installierten Drucker abfragen.

Wie entdecke ich verfügbare Drucker?

Anstatt Druckernamen fest zu codieren, können wir das System zur Laufzeit mit Printer.GetPrinterNames abfragen. Diese Methode gibt einen List<string> zurück, der alle auf dem Rechner installierten Drucker enthält.

Eingabe

report.pdf ist ein A4-Geschäftsbericht mit einem Abschnitt zur Zusammenfassung und einer Datentabelle, gedruckt auf den zuerst dynamisch entdeckten Drucker.

: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

Wir rufen GetPrinterNames auf, um alle dem Betriebssystem bekannten Drucker abzurufen, einschließlich lokaler, Netzwerk- und virtueller Drucker wie "Microsoft Print to PDF". Anschließend durchlaufen wir die Liste und wählen einen Drucker anhand des Index, der Namensübereinstimmung oder einer beliebigen benutzerdefinierten Logik aus, die die Anwendung erfordert.

Ausgabe

Der Bericht wird an den ersten verfügbaren Drucker gesendet. Der Auftrag erscheint in der Druckerwarteschlange wie oben zu sehen.

Berichtsausgabe gedruckt an den ersten verfügbaren Drucker über GetPrinterNames.

Dieses Erkennen-dann-Drucken-Muster ist essenziell für Anwendungen, die auf verschiedenen Maschinen bereitgestellt werden. Das Hardcodieren eines Druckernamens funktioniert für Szenarien mit einer einzelnen Maschine, aber Produktionsanwendungen sollten verfügbare Drucker abfragen und entweder dem Benutzer die Wahl überlassen oder einen programmatisch basierend auf Namenskonventionen auswählen.

Die Druckerauswahl kann auch mit Papiergröße, DPI, Kopienanzahl und Rändern in einem einzigen Konfigurationsobjekt kombiniert werden.

Wie kombiniere ich den Druckernamen mit anderen Einstellungen?

Die PrintSettings-Klasse stellt PrinterName sowie Eigenschaften für Papierformat, Ausrichtung, DPI, Ränder, Kopienanzahl und mehr bereit. Wir konfigurieren alles in einem einzigen Objekt.

Eingabe

quarterly-report.pdf ist ein A4-Quartalsfinanzbericht mit KPI-Karten und Diagrammen, gedruckt mit PrinterName in Kombination mit Papierformat, DPI und Exemplaranzahl in einem PrintSettings-Objekt.

: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

Wir verwenden die Objektinitialisierer-Syntax für bessere Lesbarkeit. PrinterName leitet den Auftrag an den "Office Color Printer" weiter, während die übrigen Eigenschaften das Ausgabeformat steuern. Dpi bei 300 sorgt für scharfen Text und Grafiken. PaperMargins akzeptiert Millimeterwerte über den Margins-Konstruktor. Für die vollständige Liste der verfügbaren Eigenschaften siehe den Leitfaden zu Druckeinstellungen.

Ausgabe

Der Quartalsbericht druckt mit dem benannten Drucker, A4-Hochformat, 300 DPI, 2 Kopien und 15 mm Rändern in einem Auftrag. Der Auftrag erscheint in der Druckerwarteschlange wie oben zu sehen.

Quartalsberichtsausgabe mit PrinterName, A4, 300 DPI, 2 Kopien und 15 mm Rändern.

IronPrint validiert die Konfiguration als Einheit und übermittelt die kombinierten Einstellungen in einem einzigen Auftrag an den Druckertreiber.

Anwendungen, die den Hauptthread während der Druckererkennung oder des Druckens nicht blockieren können, können die asynchronen Entsprechungen beider Vorgänge verwenden.

Wie wähle ich einen Drucker und drucke asynchron?

Für WPF- und WinForms-Anwendungen, bei denen das Blockieren des Hauptthreads nicht in Frage kommt, verwenden wir Printer.GetPrinterNamesAsync und Printer.PrintAsync. Beide geben einen Task zurück, wodurch die Benutzeroberfläche reaktionsfähig bleibt.

: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

Dieses klassenbasierte Beispiel verpackt die Logik zum Erkennen und Drucken in einen wiederverwendbaren Dienst. Wir rufen GetPrinterNamesAsync auf, um die Druckerliste abzurufen, ohne die Benutzeroberfläche zu blockieren, und weisen dann den ersten verfügbaren Drucker PrinterName zu. Der Aufruf await Printer.PrintAsync sendet den Auftrag asynchron.

Ausgabe

Die Rechnung wird asynchron an den zuerst entdeckten Drucker gedruckt. Der Auftrag erscheint in der Druckerwarteschlange wie oben zu sehen.

Rechnungsausgabe asynchron an den ersten verfügbaren Drucker gedruckt.

In der Produktion könnten wir printers[0] durch eine Logik ersetzen, die einer Namenskonvention entspricht, z. B. die Suche nach Druckern mit dem Begriff "Label" für Versandetiketten oder "Color" für Markendokumente. Die asynchronen Methoden von IronPrint akzeptieren alle dasselbe PrintSettings-Objekt, sodass das PrinterName-Verhalten bei synchronen und asynchronen Pfaden identisch ist.

Mit statischer Zuweisung, Laufzeiterkennung, kombinierten Einstellungen und asynchronen Workflows, die alle abgedeckt sind, sind einige verwandte Ressourcen es wert, als Lesezeichen gespeichert zu werden.

Was sind meine nächsten Schritte?

Wir haben die Angabe eines Druckernamens über PrintSettings.PrinterName behandelt, von der statischen Zuweisung bis zur dynamischen Erkennung zur Laufzeit mit Printer.GetPrinterNames. Die wichtigsten Punkte: Druckernamen müssen exakt übereinstimmen (Groß-/Kleinschreibung beachten), null verwendet standardmäßig den Standarddrucker des Betriebssystems, und Druckdialoge überschreiben die programmgesteuerte Auswahl.

Das Beispiel für das Abrufen von Druckernamen bietet einen eigenständigen Entdeckungsausschnitt, während der Leitfaden zu Druckeinstellungen jedes konfigurierbare Eigenschaft im Detail behandelt. Die API-Referenz der Druckerklasse dokumentiert alle statischen Druckmethoden, und die PrintSettings API-Referenz listet jedes Feld und den Standard auf. Für einen vollständigen Schritt-für-Schritt-Durchgang verbindet das Print Document-Tutorial alles.

Starten Sie eine kostenlose 30-Tage-Testversion, um die Druckerauswahl in einem Live-Projekt zu testen. Wenn Sie bereit sind, sehen Sie sich die Lizenzoptionen ab $999 an.

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 Referenz/IronPrint.Printer.html

Häufig gestellte Fragen

Wie kann ich einen Druckernamen in C# mit IronPrint angeben?

Mit IronPrint können Sie einen Druckernamen in C# angeben, indem Sie die PrinterName-Eigenschaft festlegen. Dies ermöglicht Ihnen, einen bestimmten Drucker für Ihre Druckaufgaben anzusprechen.

Was ist IronPrint?

IronPrint ist eine Bibliothek von Iron Software, die Entwicklern ermöglicht, Druckaufgaben in C#-Anwendungen zu verwalten und Funktionalitäten bereitzustellen, um Druckernamen und andere Druckoptionen anzugeben.

Wie entdecke ich verfügbare Drucker in C#?

Mit IronPrint können Sie ganz einfach verfügbare Drucker in Ihrem Netzwerk entdecken, indem Sie auf die Liste der Drucker zugreifen und den gewünschten PrinterName für Ihren Druckauftrag auswählen.

Kann ich die PrinterName-Eigenschaft dynamisch setzen?

Ja, mit IronPrint können Sie die PrinterName-Eigenschaft in Ihrem C#-Code dynamisch setzen, um den gewünschten Drucker zur Laufzeit auszuwählen.

Ist es möglich, mit IronPrint zu einem Netzwerkdrucker zu drucken?

Ja, IronPrint ermöglicht es Ihnen, zu Netzwerkdruckern zu spezifizieren und zu drucken, indem Sie die entsprechende PrinterName-Eigenschaft in Ihrer C#-Anwendung festlegen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 41,154 | Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronPrint
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihr Dokument auf dem Drucker ausgegeben wird.