Zum Fußzeileninhalt springen
IRONPRINT VERWENDEN

So drucken Sie mit einem Netzwerkdrucker in C#

Das programmgesteuerte Drucken auf Netzwerkdruckern ist eine häufige Aufgabe in verschiedenen Softwareanwendungen. Egal, ob Sie eine Desktop-, mobile Anwendung oder einen Webdienst entwickeln, die Möglichkeit, Dokumente direkt an einen Netzwerkdrucker zu senden, kann die Benutzerfreundlichkeit und Effizienz Ihrer Software erheblich verbessern. In this article, we'll explore how to print on a network printer using C# and IronPrint from Iron Software.

Wie man mit einem Netzwerkdrucker in C# druckt

  1. Erstellen Sie ein neues Projekt zum Drucken von Dokumenten mit IronPrint.
  2. Installieren Sie IronPrint in ein neues Projekt.
  3. Listen Sie Netzwerdrucker auf, die zum Drucken von Dokumenten verfügbar sind.
  4. Drucken Sie PDF-Dokumente mit IronPrint.
  5. Drucken Sie PDF-Dokumente mit IronPrint mit Dialog.
  6. Erweitertes Drucken mit Druckeinstellungen.

Einrichtung der Umgebung

Bevor wir zum Programmieren übergehen, stellen wir sicher, dass unsere Umgebung korrekt eingerichtet ist. Um auf einem Netzwerkdrucker in C# zu drucken, benötigen Sie Folgendes:

  1. Stellen Sie sicher, dass ein Netzwerkdrucker von dem Computer aus zugänglich ist, auf dem Ihre C#-Anwendung läuft.
  2. Die Netzwerkadresse des Druckers (IP-Adresse oder Netzwerkdruckername).
  3. Notwendiger Druckertreiber/er auf dem Computer installiert.
  4. Administratorrechte, um Drucker oder Treiber bei Bedarf zu installieren.

IronPrint

Bevor wir in die Implementierungsdetails eintauchen, machen wir uns mit dem Einstieg in IronPrint vertraut:

  1. Installation: IronPrint kann einfach über den NuGet-Paket-Manager installiert werden. Besuchen Sie einfach die NuGet-Seite und folgen Sie den Installationsanweisungen.
  2. Dokumentation: Beziehen Sie sich auf die offizielle Dokumentation für eine Schnellstartanleitung und umfassende API-Referenz.

Kompatibilität und Support: IronPrint bietet umfassende Kompatibilität und Unterstützung in verschiedenen Umgebungen und Projekttypen:

  • .NET Version Support: IronPrint unterstützt C#, VB.NET und F#, einschließlich .NET 8,7,6,5 und Core 3.1+.
  • Betriebssysteme und Umgebungen: IronPrint ist kompatibel mit Windows (7+), macOS (10+), iOS (11+) und Android API 21+ (v5 "Lollipop").
  • Projektarten: Egal, ob Sie mobile (Xamarin, MAUI, Avalonia), Desktop- (WPF, MAUI, Windows Avalonia) oder Konsolenanwendungen entwickeln, IronPrint unterstützt Sie.

Schauen wir uns nun an, wie man mit IronPrint druckt, anhand des folgenden Beispiels.

using IronPrint;

namespace IronPrintDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Configure printer setting
            PrintSettings printSettings = new PrintSettings();
            printSettings.Dpi = 220;
            printSettings.NumberOfCopies = 10;
            printSettings.PaperOrientation = PaperOrientation.Portrait;

            // Print the document
            Printer.Print("awesomeIronPrint.pdf", printSettings);
        }
    }
}
using IronPrint;

namespace IronPrintDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Configure printer setting
            PrintSettings printSettings = new PrintSettings();
            printSettings.Dpi = 220;
            printSettings.NumberOfCopies = 10;
            printSettings.PaperOrientation = PaperOrientation.Portrait;

            // Print the document
            Printer.Print("awesomeIronPrint.pdf", printSettings);
        }
    }
}
Imports IronPrint

Namespace IronPrintDemo
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Configure printer setting
			Dim printSettings As New PrintSettings()
			printSettings.Dpi = 220
			printSettings.NumberOfCopies = 10
			printSettings.PaperOrientation = PaperOrientation.Portrait

			' Print the document
			Printer.Print("awesomeIronPrint.pdf", printSettings)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

System.Printing

Der System.Printing-Namensraum in C# enthält Klassen und Schnittstellen, die es Entwicklern ermöglichen, programmgesteuert mit Druckern, Druckwarteschlangen, Druckservern und Druckaufträgen zu interagieren. Einige wichtige Klassen und Schnittstellen in diesem Namensraum sind:

  1. PrintQueue: Repräsentiert einen Drucker oder ein Druckgerät, das mit dem System verbunden ist.
  2. PrintServer: Repräsentiert einen Druckserver im Netzwerk.
  3. PrintSystemJobInfo: Bietet Informationen über einen Druckauftrag, wie dessen Status und Eigenschaften.
  4. PrintTicket: Repräsentiert die Einstellungen für einen Druckauftrag, einschließlich Papiergröße, Ausrichtung und Druckqualität.

Erste Schritte mit System.Printing: Bevor wir in den Code eintauchen, stellen wir sicher, dass wir ein grundlegendes Verständnis davon haben, wie das Drucken mit System.Printing funktioniert:

  1. PrintQueue-Auswahl: Sie müssen das PrintQueue-Objekt identifizieren, das den Drucker repräsentiert, den Sie verwenden möchten.
  2. PrintTicket-Konfiguration: Optional können Sie das PrintTicket-Objekt konfigurieren, um Druckeinstellungen wie Papiergröße, Ausrichtung und Kopienanzahl anzugeben.
  3. Dokumentdruck: Schließlich senden Sie das zu druckende Dokument an die ausgewählte PrintQueue.

Implementierung des Dokumentdrucks mit System.Printing: Gehen wir nun den Prozess des Druckens eines Dokuments mit System.Printing durch, anhand des folgenden Beispiels:

Hier ist der Quellcode:

using System;
using System.IO;
using System.Printing;

class Program
{
    static void Main(string[] args)
    {
        // Specify the path to the document to be printed on the local printer
        string documentPath = "path/to/your/document.pdf";

        // Instantiate a Printer Server object representing the local print server
        using (PrintServer printServer = new PrintServer())
        {
            // Get the default PrintQueue from the PrintServer default 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;

            // Create a PrintTicket object to specify print settings (optional)
            PrintTicket printTicket = new PrintTicket();

            // Configure print settings, e.g., number of copies
            printTicket.CopyCount = 1;

            // Print the document to the default PrintQueue with the specified PrintTicket
            defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
        }

        Console.WriteLine("Document sent to print queue.");
    }
}
using System;
using System.IO;
using System.Printing;

class Program
{
    static void Main(string[] args)
    {
        // Specify the path to the document to be printed on the local printer
        string documentPath = "path/to/your/document.pdf";

        // Instantiate a Printer Server object representing the local print server
        using (PrintServer printServer = new PrintServer())
        {
            // Get the default PrintQueue from the PrintServer default 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;

            // Create a PrintTicket object to specify print settings (optional)
            PrintTicket printTicket = new PrintTicket();

            // Configure print settings, e.g., number of copies
            printTicket.CopyCount = 1;

            // Print the document to the default PrintQueue with the specified PrintTicket
            defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
        }

        Console.WriteLine("Document sent to print queue.");
    }
}
Imports System
Imports System.IO
Imports System.Printing

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Specify the path to the document to be printed on the local printer
		Dim documentPath As String = "path/to/your/document.pdf"

		' Instantiate a Printer Server object representing the local print server
		Using printServer As New PrintServer()
			' Get the default PrintQueue from the PrintServer default 
			Dim defaultPrintQueue As PrintQueue = printServer.DefaultPrintQueue

			' Create a PrintTicket object to specify print settings (optional)
			Dim printTicket As New PrintTicket()

			' Configure print settings, e.g., number of copies
			printTicket.CopyCount = 1

			' Print the document to the default PrintQueue with the specified PrintTicket
			defaultPrintQueue.AddJob("MyPrintJob", documentPath, False, printTicket)
		End Using

		Console.WriteLine("Document sent to print queue.")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPrint Vs System.Printing

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 1 - Eine schnelle Vergleichstabelle zwischen IronPrint und System.Printing

Diese Tabelle bietet einen schnellen Überblick über die Funktionen und Merkmale von IronPrint und System.Printing, die Entwicklern helfen, fundierte Entscheidungen basierend auf ihren spezifischen Anforderungen und Plattformzielen zu treffen.

Schritt 1: Erstellen Sie ein neues Projekt zum Drucken von Dokumenten mit IronPrint

Erstellen Sie eine Konsolenanwendung in Visual Studio wie unten gezeigt.

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 2 - Erstellen einer Konsolenanwendung

Geben Sie einen Projektnamen und einen Speicherort an.

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 3 - Einen Projektnamen angeben

Wählen Sie die .NET-Version aus.

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 4 - Wählen Sie die entsprechende .NET-Version aus

Nun ist das Projekt erstellt und bereit für weiteres Programmieren.

Schritt 2: Installieren Sie IronPrint in einem neuen Projekt

Installieren Sie IronPrint aus dem Visual Studio Paket-Manager wie unten gezeigt.

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 5 - Suchen Sie nach IronPrint über den Visual Studio Paket-Manager

IronPrint kann auch mit dem folgenden Befehl installiert werden:

Install-Package IronPrint

Schritt 3: Listen Sie Netzwerdrucker auf, die zum Drucken von Dokumenten verfügbar sind

Um die Druckernamen mit IronPrint aufzulisten, verwenden Sie den unten stehenden Code:

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

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Get printer names using printer drivers
            List<string> printersName = Printer.GetPrinterNames();
            foreach (var printer in printersName)
            {
                Console.WriteLine(printer);
            }
        }
    }
}
using System;
using System.Collections.Generic;
using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Get printer names using printer drivers
            List<string> printersName = Printer.GetPrinterNames();
            foreach (var printer in printersName)
            {
                Console.WriteLine(printer);
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports IronPrint

Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Get printer names using printer drivers
			Dim printersName As List(Of String) = Printer.GetPrinterNames()
			For Each printer In printersName
				Console.WriteLine(printer)
			Next printer
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Code-Erklärung

  1. Verwenden Sie Printer.GetPrinterNames, um alle verfügbaren Druckertreiber zu erhalten.
  2. Drucken Sie die Namen mit Console.WriteLine aus.

Ausgabe

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 6 - Beispielausgabe der verfügbaren Drucker

Schritt 4: PDF-Dokument mit IronPrint drucken

Verwenden Sie den unten stehenden Code, um das Dokument leise zu drucken:

using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Print the document silently
            Printer.Print("sample.pdf");
        }
    }
}
using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Print the document silently
            Printer.Print("sample.pdf");
        }
    }
}
Imports IronPrint

Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Print the document silently
			Printer.Print("sample.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Nach der Ausführung wird das Dokument der Druckwarteschlange hinzugefügt, wie in der Ausgabe gezeigt.

Ausgabe

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 7 - Beispielausgabe, die zeigt, dass das Dokument zur Druckwarteschlange hinzugefügt wurde

Schritt 5: PDF-Dokument mit IronPrint mit Dialog drucken

Verwenden Sie den unten stehenden Code, um das Dokument mit dem Dialog zu drucken:

using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Print with Dialog
            Printer.ShowPrintDialog("sample.pdf");
        }
    }
}
using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Print with Dialog
            Printer.ShowPrintDialog("sample.pdf");
        }
    }
}
Imports IronPrint

Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Print with Dialog
			Printer.ShowPrintDialog("sample.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Code-Erklärung

  1. Mit ShowPrintDialog von IronPrint können wir mit Dialog drucken.
  2. Sobald der Dialog geöffnet ist, wählen Sie den erforderlichen Drucker aus, um das Dokument zu drucken.

Ausgabe

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 8 - Wählen Sie den richtigen Drucker aus

Schritt 6: Erweitertes Drucken mit Druckeinstellungen

Das Drucken von Dokumenten mit erweiterten Einstellungen wird in IronPrint unterstützt. Es unterstützt die folgenden Eigenschaften:

  1. PaperSize: Gibt die vom Drucker verwendeten Papierdimensionen an.
  2. PaperOrientation: Definiert die Ausrichtung des Papiers, wie z.B. Automatisch, Hochformat oder Querformat.
  3. DPI: Legt die gewünschte Druckauflösung in Punkten pro Zoll fest. Der Standardwert ist 300, der allgemein im kommerziellen Druck verwendet wird. Das tatsächliche DPI kann durch die Fähigkeiten des Druckers eingeschränkt sein.
  4. NumberOfCopies: Gibt die Anzahl der identischen Kopien an, die für ein Dokument gedruckt werden sollen.
  5. PrinterName: Gibt den Namen des Druckers an, der für Druckaufträge verwendet wird.
  6. PaperMargins: Bestimmt die Ränder für das Drucken, gemessen in Millimetern.
  7. Grayscale: Ein boolescher Wert, der angibt, ob in Graustufen gedruckt werden soll. Der Standardwert ist false.

Betrachten wir nun ein Codebeispiel:

using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Configure custom print settings
            PrintSettings printSettings = new PrintSettings();
            printSettings.Dpi = 150;
            printSettings.NumberOfCopies = 2;
            printSettings.PaperOrientation = PaperOrientation.Portrait;

            // Print the required document
            Printer.Print("sample.pdf", printSettings);
        }
    }
}
using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Configure custom print settings
            PrintSettings printSettings = new PrintSettings();
            printSettings.Dpi = 150;
            printSettings.NumberOfCopies = 2;
            printSettings.PaperOrientation = PaperOrientation.Portrait;

            // Print the required document
            Printer.Print("sample.pdf", printSettings);
        }
    }
}
Imports IronPrint

Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Configure custom print settings
			Dim printSettings As New PrintSettings()
			printSettings.Dpi = 150
			printSettings.NumberOfCopies = 2
			printSettings.PaperOrientation = PaperOrientation.Portrait

			' Print the required document
			Printer.Print("sample.pdf", printSettings)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Code-Erklärung

  1. Der Code beginnt mit dem Import des notwendigen Namensraums IronPrint, der die erforderlichen Klassen und Methoden zum Drucken enthält.
  2. Innerhalb des IronPrintDemo-Namespaces wird eine Klasse namens Program als public deklariert.
  3. Die Main-Methode dient als Einstiegspunkt des Programms.
  4. Innerhalb der Main-Methode:
    • Ein PrintSettings-Objekt namens printSettings wird instanziiert, um benutzerdefinierte Druckeinstellungen zu konfigurieren.
    • Die Dpi-Eigenschaft von printSettings ist auf 150 gesetzt, was eine Druckauflösung von 150 Punkten pro Zoll angibt.
    • Die NumberOfCopies-Eigenschaft von printSettings ist auf 2 gesetzt, was angibt, dass zwei identische Kopien des Dokuments gedruckt werden.
    • Die PaperOrientation-Eigenschaft von printSettings ist auf PaperOrientation.Portrait gesetzt, was angibt, dass das Dokument im Hochformat gedruckt wird.
  5. Schließlich wird die Printer.Print-Methode mit den Parameter "sample.pdf" (der Name des zu druckenden Dokuments) und printSettings (die benutzerdefinierten Druckeinstellungen) aufgerufen. Diese Methode zert die Druckvorgang durch die angegebenen Einstellungen.

Ausgabe

Wie man mit einem Netzwerkdrucker in C# druckt: Abbildung 9 - Beispielausgabe, die zeigt, dass das PDF-Dokument zur Druckwarteschlange zum Drucken hinzugefügt wurde

Lizenz

IronPrint from Iron Software ist eine Enterprise-Bibliothek und erfordert eine Lizenz zum Ausführen. Das Hinzufügen eines IronPrint-Lizenzschlüssels macht das Projekt ohne Einschränkungen oder Wasserzeichen live. Buy a license here or sign up for a free 30-day trial key hier an.

Sobald der Lizenzschlüssel erhalten wurde, muss der Schlüssel in der appSettings.json-Datei der Anwendung platziert werden.

{
  "IronPrint.License.LicenseKey": "IRONPRINT.KEY"
}

Dies wird Dokumente ohne Einschränkungen und Wasserzeichen drucken.

Abschluss

Zusammenfassend haben IronPrint und System.Printing jeweils ihre Stärken und sind für unterschiedliche Szenarien geeignet. IronPrint bietet eine optimierte und plattformübergreifende Lösung mit Schwerpunkt auf Einfachheit und Vielseitigkeit, während System.Printing native Integration und fein abgestimmte Kontrolle bietet, insbesondere für Windows-basierte Anwendungen. Entwickler sollten ihre spezifischen Anforderungen und Plattformziele berücksichtigen, wenn sie sich zwischen diesen Druckbibliotheken für ihre C#-Projekte entscheiden.

IronPrint vereinfacht das Drucken von Dokumenten innerhalb von .NET-Anwendungen, indem es eine benutzerfreundliche API und umfangreiche Kompatibilität über verschiedene Plattformen und Projekttypen hinweg bietet. Indem Sie die im Artikel beschriebenen Schritte befolgen, können Sie Druckfunktionen nahtlos in Ihre .NET-Projekte integrieren und deren Benutzerfreundlichkeit und Produktivität steigern. Entdecken Sie die Möglichkeiten mit IronPrint und erschließen Sie eine Welt des effizienten Dokumentendrucks innerhalb Ihrer Anwendungen.

Häufig gestellte Fragen

Wie kann ich mit C# auf einem Netzwerkdrucker drucken?

Sie können IronPrint verwenden, um Dokumente auf einem Netzwerkdrucker in C# zu drucken. Es ermöglicht Ihnen, Dokumente direkt an einen Netzwerkdrucker zu senden mit Methoden, die Druckaufgaben programmgesteuert verwalten.

Was sind die Schritte, um das Drucken auf einem Netzwerkdrucker in C# einzurichten?

Stellen Sie zunächst sicher, dass Sie Zugriff auf einen Netzwerkdrucker und dessen Adresse haben. Installieren Sie die notwendigen Treiber und IronPrint über den NuGet-Paket-Manager. Verwenden Sie dann die Methoden von IronPrint, um Druckaufträge zu verwalten und zu senden.

Wie installiere ich IronPrint in meinem C#-Projekt?

Sie können IronPrint mit dem NuGet-Paket-Manager in Visual Studio installieren oder indem Sie den Befehl Install-Package IronPrint in der Paket-Manager-Konsole ausführen.

Welche .NET-Versionen sind mit IronPrint kompatibel?

IronPrint unterstützt C#, VB.NET und F# und ist kompatibel mit .NET 8, 7, 6, 5 und Core 3.1+.

Kann IronPrint auf verschiedenen Betriebssystemen verwendet werden?

Ja, IronPrint ist kompatibel mit Windows (7+), macOS (10+), iOS (11+) und Android API 21+ (v5 'Lollipop').

Wie vergleicht sich IronPrint mit System.Printing in C#?

IronPrint bietet eine plattformübergreifende Lösung mit einem Fokus auf Einfachheit, während System.Printing native Integration und Kontrolle für Windows-basierte Anwendungen bietet.

Wie kann ich verfügbare Netzwerkdrucker mit IronPrint auflisten?

Sie können die Methode Printer.GetPrinterNames() in IronPrint verwenden, die eine Liste der verfügbaren Druckertreiber zurückgibt.

Welche erweiterten Druckoptionen gibt es mit IronPrint?

IronPrint unterstützt erweiterte Einstellungen einschließlich PaperSize, PaperOrientation, DPI, NumberOfCopies, PrinterName, PaperMargins und Grayscale.

Welche Lizenzierungsoptionen gibt es für IronPrint?

IronPrint-Lizenzen können gekauft werden oder Sie können sich für eine kostenlose 30-Tage-Testversion auf der Iron Software-Website anmelden. Der Lizenzschlüssel wird in der appSettings.json-Datei Ihrer Anwendung platziert.

Welcher Befehl wird verwendet, um IronPrint über die Kommandozeile zu installieren?

Um IronPrint über die Kommandozeile zu installieren, verwenden Sie den Befehl Install-Package IronPrint.

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