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 bietet Microsoft C# eineDruckmethode 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
Behandlung des Ereignisses PrintDocument mit dem Ereignis PrintPage
Auftrag Drucken einleiten
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, können Sie es von der offiziellen Website herunterladen und installieren:Visuelles Studio.
Ein neues Projekt erstellen
Öffnen Sie Visual Studio.
Klicken Sie auf "Ein neues Projekt erstellen".
Projektvorlage auswählen
Wählen Sie im Dialog "Neues Projekt erstellen" die Option "Windows Forms App(.NET-Framework)"oder "Windows Forms-Anwendung(.NET Core)" je nach Vorliebe.
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 Namespaces bieten wichtige Klassen wie PrintDocument, PrintPageEventArgs und PrintController für die Handhabung von Druckvorgängen.
Schritt 3: Behandlung des PrintDocument-Ereignisses
Die Klasse PrintDocument ist ein Grundstein für das Drucken in C#. Behandeln Sie das Ereignis PrintPage, um festzulegen, welcher Inhalt gedruckt und wie er formatiert werden soll. 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 Klasse PrintDocument erstellen, den Ereignishandler PrintPage 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. 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. Ist er nicht vorhanden, wird die Datei auf dem Standarddrucker ausgedruckt(Microsoft Print to PDF) im Dialogfeld Drucken, wie unten gezeigt:
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, von Iron Software entwickelte Druckbibliothek, die für die nahtlose Integration in .NET-Anwendungen konzipiert ist. 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 Dokumentenformaten, darunter PDF, PNG, HTML, TIFF, GIF, JPEG und BITMAP. Diese Vielseitigkeit stellt sicher, dass die Entwickler mit verschiedenen Arten von Inhalten für den Druck arbeiten können.
Anpassbare Einstellungen: Entwickler haben die Flexibilität, die Druckeinstellungen entsprechend den Anforderungen ihrer Anwendung anzupassen. Dazu gehören Optionen zur Einstellung der DPI(punkte pro Zoll), Papierausrichtung angeben(hoch- oder Querformat)und kontrollieren die Anzahl der Kopien.
Druckdialog: IronPrint ermöglicht eine nahtlose Benutzererfahrung, indem es Entwicklern erlaubt, einen Druckdialog vor dem Drucken 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 die Plattformgrenzen 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 in verschiedene Projekttypen wie Mobile(Xamarin, MAUI und Avalonia)desktop(WPF, MAUI und Windows Avalonia)und Konsole(App & Bibliothek).
Umfassende Unterstützung von .NET-Versionen: Egal, ob Sie die neueste .NET-Version 8, 7, 6 oder Core 3.1+ verwenden, IronPrint bietet Ihnen alles. Außerdem wird die Unterstützung auf das .NET-Framework ausgeweitet(4.6.2+)die Kompatibilität zwischen verschiedenen Entwicklungsumgebungen gewährleisten.
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 dieDrucker klasse, die den Dateipfad für die Print-Methode angibt, um PDF-Dateien unauffällig 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 den Druck einer PDF-Datei, aber IronPrint unterstützt eine Vielzahl von Dateiformaten, einschließlich PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE und BITMAP.
Anpassen der Druckeinstellungen
IronPrint ermöglicht Ihnen die Anpassung vonDruckeinstellungen je nach den Anforderungen Ihrer Anwendung. Mit der Klasse PrintSettings können Sie Einstellungen wie DPI, Anzahl der Kopien, Papierausrichtung und vieles mehr 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 auchGetPrinterNames methode.
// 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
Ausführlichere Informationen finden Sie auf der WebsiteDokumentationsseite .
Schlussfolgerung
Das Drucken von Dateien in C# ist mit den Möglichkeiten des System.Drawing.Printing-Namespace eine überschaubare Aufgabe. Durch die Behandlung des Ereignisses PrintPage und die Verwendung der Klasse PrintDocument 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 einekostenlos testen seite für weitere Informationen. Laden Sie die Bibliothek herunter von*hier und probieren Sie es aus.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.