Das Drucken von PDF-Dateien direkt aus einer C#-Anwendung kann eine wertvolle Funktion sein, insbesondere bei der Entwicklung von Anwendungen, die eine nahtlose Integration mit physischen PDF-Dokumenten erfordern. Egal, ob Sie an einem PDF-Dokumentenverwaltungssystem, einer Point-of-Sale-Anwendung oder einer anderen Software arbeiten, die mit dem Drucken zu tun hat, C# bietet eine Reihe von robusten Bibliotheken, die diese PDF-Druckmethodenfunktionalität erleichtern.
Zu diesem Zweck stellt Microsoft C# eine Druckmethode bereit, um PDF-Dateien auf einem Standarddrucker zu drucken. In diesem Artikel werden wir die Schritte zum Drucken einer PDF-Datei auf einem Drucker mit C# erkunden.
Wie drucke ich eine Datei auf einem Drucker in C#;
Erstellen einer C# Windows Forms-Anwendung
Importieren Sie System.Drawing.Printing mit dem Schlüsselwort
Gestalten Sie das Formular mit einer Schaltfläche und anderen notwendigen Steuerelementen
Verarbeiten des PrintDocument-Ereignisses mithilfe des PrintPage-Ereignisses
Druckauftrag starten
Starten Sie die Anwendung und klicken Sie auf die Schaltfläche Drucken, um zu drucken
Voraussetzungen
Bevor Sie beginnen, sollten Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:
Eine C# Entwicklungsumgebung (z.B. Visual Studio).
Ausreichende Berechtigungen für die Interaktion mit Druckern.
Grundlegende Kenntnisse der C#-Programmierung.
Schritt 1: Einrichten Ihres Projekts
Erstellen Sie ein neues C#-Projekt oder öffnen Sie ein bestehendes Projekt in Ihrer bevorzugten Entwicklungsumgebung. Vergewissern Sie sich, dass Ihr Projekt korrekt konfiguriert ist und Sie über die erforderlichen Berechtigungen für Druckerinteraktionen verfügen. Mit dem folgenden Verfahren können Sie diesen Prozess abschließen:
Visual Studio installieren
Wenn Sie Visual Studio nicht installiert haben, laden Sie es von der offiziellen Website herunter und installieren Sie es: Visual Studio.
Ein neues Projekt erstellen
Öffnen Sie Visual Studio.
Klicken Sie auf "Ein neues Projekt erstellen".
Projektvorlage auswählen
Im Dialogfeld "Neues Projekt erstellen" wählen Sie je nach Vorliebe "Windows Forms App (.NET Framework)" oder "Windows Forms App (.NET Core)".
Geben Sie einen Namen und einen Standort für Ihr Projekt an.
Klicken Sie auf Weiter und wählen Sie auf dem Bildschirm mit den zusätzlichen Informationen das .NET-Framework aus und klicken Sie auf "Erstellen"
Gestalten Sie das Formular
Sobald das Projekt erstellt ist, wird das Hauptformular im Designer angezeigt.
Verwenden Sie die Toolbox, um Ihrem Formular nach Bedarf Steuerelemente wie Schaltflächen, Textfelder, Beschriftungen usw. hinzuzufügen.
Passen Sie die Eigenschaften der einzelnen Steuerelemente über das Fenster Eigenschaften an.
Passen Sie das Aussehen und das Layout des Formulars an.
Schritt 2: Importieren der erforderlichen Bibliotheken
Importieren Sie in Ihrer C#-Codedatei die erforderlichen Namespaces, um auf die Klassen und Methoden im Zusammenhang mit dem Drucken zuzugreifen.
using System.Drawing.Printing;
using System.Drawing.Printing;
Imports System.Drawing.Printing
$vbLabelText $csharpLabel
Diese Namensräume bieten wesentliche Klassen wie PrintDocument, PrintPageEventArgs und PrintController zur Bearbeitung von Druckvorgängen.
Schritt 3: Behandlung des PrintDocument-Ereignisses
Die PrintDocument-Klasse ist ein Grundpfeiler für das Drucken in C#. Behandeln Sie das PrintPage-Ereignis, um festzulegen, welche Inhalte gedruckt werden sollen und wie diese formatiert werden sollen. Beginnen wir mit einem einfachen Beispiel für das Drucken des Inhalts einer Textdatei:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.txt";
// Read the content of the file
string line = System.IO.File.ReadAllText(filePath);
// Create a Font object (adjust as needed)
Font font = new Font("Arial", 12);
// Create a RectangleF to define the printing area
RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
// Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area);
// Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = false;
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.txt";
// Read the content of the file
string line = System.IO.File.ReadAllText(filePath);
// Create a Font object (adjust as needed)
Font font = new Font("Arial", 12);
// Create a RectangleF to define the printing area
RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
// Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area);
// Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = false;
}
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
' Specify the file path
Dim filePath As String = "C:\path\to\your\file.txt"
' Read the content of the file
Dim line As String = System.IO.File.ReadAllText(filePath)
' Create a Font object (adjust as needed)
Dim font As New Font("Arial", 12)
' Create a RectangleF to define the printing area
Dim area As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
' Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area)
' Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = False
End Sub
$vbLabelText $csharpLabel
Dieses Beispiel liest den Inhalt einer Textdatei und druckt ihn unter Verwendung der angegebenen Schriftart und Formatierung aus.
Schritt 4: Starten des Druckauftrags
Starten Sie den Druckauftrag, indem Sie eine Instanz der PrintDocument-Klasse erstellen, den PrintPage-Ereignishandler anhängen und dann den Druckvorgang auslösen. Optional können Sie einen Druckdialog für die Benutzerkonfiguration anzeigen:
private void btnPrint_Click(object sender, EventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
// Optionally, display a print dialog for user configuration
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
pd.PrinterSettings = printDialog.PrinterSettings;
pd.Print();
}
}
private void btnPrint_Click(object sender, EventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
// Optionally, display a print dialog for user configuration
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
pd.PrinterSettings = printDialog.PrinterSettings;
pd.Print();
}
}
Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf printDocument1_PrintPage
' Optionally, display a print dialog for user configuration
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
pd.PrinterSettings = printDialog.PrinterSettings
pd.Print()
End If
End Sub
$vbLabelText $csharpLabel
Dieser Code erstellt eine PrintDocument-Instanz, fügt den PrintPage-Ereignishandler hinzu und druckt dann das Dokument aus. Der optionale Druckdialog ermöglicht es dem Benutzer, die Druckeinstellungen zu konfigurieren, bevor der Druckauftrag gestartet wird. Damit wird das Textdokument auf einem lokal angeschlossenen Drucker ausgedruckt. Wenn es nicht vorhanden ist, wird die Datei im Druckdialog wie unten gezeigt auf den Standarddruckernamen (Microsoft Print to PDF) gedruckt:
Erweitertes Drucken in C#; über IronPrint Library
Wenn es darum geht, Druckfunktionen in C#-Konsolenanwendungen effizient und effektiv zu handhaben, bietet die IronPrint-Bibliothek eine leistungsstarke Lösung.
Einführung in IronPrint
IronPrint ist eine umfassende Druckbibliothek, entwickelt von Iron Software, die nahtlos mit .NET-Anwendungen integriert werden kann. Egal, ob Sie an einem Desktop-, Web- oder mobilen Projekt arbeiten, IronPrint bietet vielseitige Funktionen zum Drucken von PDF-Dokumenten, unterstützt verschiedene Dateiformate und bietet anpassbare Druckeinstellungen.
Wesentliche Merkmale
Formatunterstützung: IronPrint unterstützt eine Vielzahl von Dokumentformaten, einschließlich PDF, PNG, HTML, TIFF, GIF, JPEG und BITMAP. Diese Vielseitigkeit stellt sicher, dass Entwickler mit verschiedenen Arten von Inhalten zum Drucken arbeiten können.
Anpassbare Einstellungen: Entwickler haben die Flexibilität, die Druckeinstellungen an die Anforderungen ihrer Anwendung anzupassen. Dies umfasst Optionen zum Festlegen von DPI (Punkte pro Zoll), zum Festlegen der Papierausrichtung (Hoch- oder Querformat) und zur Steuerung der Anzahl der Kopien.
Druckdialog: IronPrint ermöglicht ein nahtloses Benutzererlebnis, indem es Entwicklern erlaubt, vor dem Drucken einen Druckdialog anzuzeigen. Dies kann in Szenarien nützlich sein, in denen die Benutzer mit dem Druckprozess interagieren und bestimmte Optionen auswählen müssen.
Plattformübergreifende Kompatibilität: IronPrint geht über Plattformbeschränkungen hinaus und bietet Kompatibilität mit einer Vielzahl von Umgebungen, einschließlich Windows (7+), macOS (10+), iOS (11+) und Android API 21+ (v5 "Lollipop"). Es integriert sich nahtlos mit verschiedenen Projekttypen wie Mobile (Xamarin, MAUI & Avalonia), Desktop (WPF, MAUI & Windows Avalonia) und Konsole (App & Bibliothek).
Umfassende Unterstützung für .NET-Versionen: Egal, ob Sie das neueste .NET 8, 7, 6 oder Core 3.1+ verwenden, IronPrint ist für Sie da. Es erweitert auch seine Unterstützung auf das .NET Framework (4.6.2+), um Kompatibilität in verschiedenen Entwicklungsumgebungen sicherzustellen.
Installation von IronPrint
Bevor Sie mit dem Drucken von Dateien beginnen, müssen Sie die IronPrint-Bibliothek installieren. Sie können dies ganz einfach über die NuGet Package Manager Console tun:
Install-Package IronPrint
Mit dieser Befehlszeile wird die IronPrint-Bibliothek heruntergeladen und in Ihrem C#-Projekt installiert.
Initialisierung von IronPrint
Sobald IronPrint installiert ist, müssen Sie es in Ihrem C#-Code initialisieren. Importieren Sie den IronPrint-Namensraum und setzen Sie den Lizenzschlüssel, um die ordnungsgemäße Funktionalität sicherzustellen:
using IronPrint;
class Program
{
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
}
}
using IronPrint;
class Program
{
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
}
}
Imports IronPrint
Friend Class Program
Public Shared Sub Main()
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
End Sub
End Class
$vbLabelText $csharpLabel
Drucken einer Datei mit IronPrint
Das Drucken einer Datei mit IronPrint ist ganz einfach. Sie können die Printer-Klasse verwenden, indem Sie den Dateipfad zur Print-Methode angeben, um PDF-Dateien im Hintergrund zu drucken:
using IronPrint;
class Program
{
// static void main
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
// Specify the file path
var document = "C:\\path\\to\\your\\file.pdf";
// Print PDFs
Printer.Print(document);
}
}
using IronPrint;
class Program
{
// static void main
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
// Specify the file path
var document = "C:\\path\\to\\your\\file.pdf";
// Print PDFs
Printer.Print(document);
}
}
Imports IronPrint
Friend Class Program
' static void main
Public Shared Sub Main()
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
' Specify the file path
Dim document = "C:\path\to\your\file.pdf"
' Print PDFs
Printer.Print(document)
End Sub
End Class
$vbLabelText $csharpLabel
Dieses Beispiel demonstriert das Drucken einer PDF-Datei, aber IronPrint unterstützt eine Vielzahl von Dateiformaten, darunter PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE und BITMAP.
Anpassen der Druckeinstellungen
IronPrint ermöglicht es Ihnen, Druckeinstellungen entsprechend den Anforderungen Ihrer Anwendung anzupassen. Sie können Einstellungen wie DPI, Anzahl der Kopien, Papierausrichtung und mehr mit der PrintSettings-Klasse konfigurieren. Mit dem folgenden Codebeispiel können Sie die Seiteneinstellungen festlegen und PDF-Dokumente drucken:
using IronPrint;
class Program
{
public static void Main()
{
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
Console.WriteLine("Printing Started...");
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.pdf";
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 300;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Landscape;
// Print the document with custom settings
Printer.Print(filePath, printSettings);
// Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings);
}
}
using IronPrint;
class Program
{
public static void Main()
{
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
Console.WriteLine("Printing Started...");
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.pdf";
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 300;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Landscape;
// Print the document with custom settings
Printer.Print(filePath, printSettings);
// Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings);
}
}
Imports IronPrint
Friend Class Program
Public Shared Sub Main()
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
Console.WriteLine("Printing Started...")
' Specify the file path
Dim filePath As String = "C:\path\to\your\file.pdf"
' Configure print settings
Dim printSettings As New PrintSettings()
printSettings.Dpi = 300
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Landscape
' Print the document with custom settings
Printer.Print(filePath, printSettings)
' Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings)
End Sub
End Class
$vbLabelText $csharpLabel
So sieht die Ausgabe aus:
Wenn der physische Drucker nicht installiert ist, wird der Standarddrucker zum Drucken von PDF-Dokumenten verwendet. Um alle verfügbaren Drucker zu erhalten, können Sie auch die Methode GetPrinterNames verwenden.
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
Console.WriteLine(printer);
}
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
Console.WriteLine(printer);
}
' Retrieve printers' name
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer As String In printersName
Console.WriteLine(printer)
Next printer
$vbLabelText $csharpLabel
Für detailliertere Informationen besuchen Sie bitte die Dokumentationsseite.
Schlussfolgerung
Das Drucken von Dateien in C# ist mit den Funktionen des System.Drawing.Printing-Namensraums eine überschaubare Aufgabe. Durch die Behandlung des PrintPage-Ereignisses und die Nutzung der PrintDocument-Klasse können Sie den Druckvorgang an Ihre spezifischen Anforderungen anpassen. Dieses umfassende Handbuch behandelt die grundlegenden Schritte zum Drucken von Dateien aus einer C#-Anwendung und bietet Ihnen eine solide Grundlage für die Integration dieser Funktionalität in Ihre Projekte. Bei unseren weiteren Untersuchungen haben wir uns bei IronPrint nach zusätzlichen Anpassungsmöglichkeiten umgesehen, z. B. bei der Verarbeitung verschiedener Dateitypen, der Einbindung von Bildern und der Verbesserung der Formatierung je nach den Anforderungen der Anwendung.
Die Integration von IronPrint in Ihre C#-Anwendung vereinfacht den Prozess des Druckens von Dateien auf einem Drucker. Mit der Unterstützung verschiedener Dateiformate und anpassbarer Druckeinstellungen bietet IronPrint eine robuste Lösung für Entwickler, die ihre Druckfunktionen erweitern möchten. Ganz gleich, ob Sie an einem Desktop-, Web- oder Mobilprojekt arbeiten, IronPrint rationalisiert den Druckprozess und ist damit eine wertvolle Ergänzung zu Ihrem .NET-Toolkit.
IronPrint bietet eine kostenlose Testversion-Seite für weitere Informationen an. Laden Sie die Bibliothek von hier herunter und probieren Sie sie aus.
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.