Wie lege ich den Druckernamen in C# fest?
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
-
Installieren Sie IronPrint mit NuGet Package Manager
-
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" }); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronPrint in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Installieren Sie die IronPrint C#-Druckbibliothek
- Erstellen Sie ein
PrintSettings-Objekt - Setzen Sie
PrinterNameauf den Namen des Ziel-Druckers - Einstellungen an
Printer.Printübergeben - Führen Sie das Projekt aus, um auf dem angegebenen Drucker zu drucken
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)
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
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)
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
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.

