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 lenkt. Wir weisen den genauen Namen des Ziel-Druckers als Zeichenkette zu, übergeben das konfigurierte PrintSettings Objekt an eine der IronPrint-Druckmethoden, und das Dokument wird an diesen Drucker gesendet, anstatt an den Standard des Systems.

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 spezifizieren den Ziel-Drucker, indem wir seinen Namen in die PrinterName Eigenschaft eines PrintSettings Objekts zuweisen. Wir übergeben dann dieses Objekt an Printer.Print.

Eingabe

invoice.pdf ist eine gestylte A4 B2B-Rechnung mit Posten und Gesamtsummen, gedruckt auf einen bestimmten benannten Drucker über 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

Zuerst instanziieren wir PrintSettings, das mit PrinterName = null initialisiert wird, was den Betriebssystem-Standarddrucker bedeutet. Dann überschreiben wir PrinterName mit dem genauen Zeichenkettennamen des Ziel-Druckers. Wenn wir Printer.Print aufrufen, schickt 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; Dieser Vergleich ist groß-/klein-schreibungssensitiv. Ein Fehler wie "hp laserjet" anstelle von "HP LaserJet" wird stumm scheitern oder einen Fehler erzeugen. Zweitens, wenn der Benutzer über ShowPrintDialog ein Druckdialog eröffnet, überschreibt die Dialogauswahl jegliche PrinterName, die im Code gesetzt wurden, was dem Benutzer die endgültige Kontrolle gibt.

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 ein List<string> zurück, das jeden auf der Maschine 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 jeden Drucker zu erhalten, den das Betriebssystem kennt, einschließlich lokaler, Netzwerk- und virtueller Drucker wie 'Microsoft Print to PDF'. Dann iterieren wir durch die Liste und wählen einen Drucker nach Index, Namensübereinstimmung oder einer beliebigen benutzerdefinierten Logik, 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 neben Eigenschaften für Papiergröße, Ausrichtung, DPI, Ränder, Kopienanzahl und mehr bereit. Wir konfigurieren alles in einem einzigen Objekt.

Eingabe

quarterly-report.pdf ist ein A4 vierteljährlicher Finanzbericht mit KPI-Karten und Diagrammen, gedruckt mit PrinterName kombiniert mit Papiergröße, DPI und Kopienanzahl 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 'Office Color Printer', während die verbleibenden Eigenschaften das Ausgabeformat steuern. Dpi bei 300 erzeugt scharfen Text und Grafiken. PaperMargins akzeptiert Millimeterwerte durch 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-Apps, bei denen das Blockieren des Hauptthreads keine Option ist, verwenden wir Printer.GetPrinterNamesAsync und Printer.PrintAsync. Beide geben ein 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 umwickelt die Logik zum Entdecken und Drucken in einem wiederverwendbaren Dienst. Wir rufen GetPrinterNamesAsync auf, um die Druckerliste abzurufen, ohne die Benutzeroberfläche einzufrieren, und weisen dann den ersten verfügbaren Drucker PrinterName zu. Der await Printer.PrintAsync Aufruf 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. das Suchen nach Druckern mit 'Label' für Versandetiketten oder 'Color' für gebrandete Dokumente. Die asynchronen Methoden von IronPrint akzeptieren alle das gleiche PrintSettings Objekt, sodass PrinterName Verhalten zwischen 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 behandelten die Spezifizierung eines Druckernamens über PrintSettings.PrinterName, von statischer Zuweisung bis hin zu dynamischer Laufzeiterkennung mit Printer.GetPrinterNames. Die Schlüsselpunkte: Druckernamen müssen exakt übereinstimmen (groß-/klein-schreibungssensibel), null wird standardmäßig auf den OS-Standarddrucker gesetzt, und Druckdialoge überschreiben programmgesteuerte Auswahlen.

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 bereit, Sehen Sie sich Lizenzierungsoptionen 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 44,051 | Version: 2026.7 gerade veröffentlicht
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.