Öffnen Sie eine PDF-Datei in C#
-
Verwenden Sie die Methode
Process.Start()
, um eine PDF-Datei inC#
zu öffnen -
Verwenden Sie den
DynamicPDF
-Viewer, um eine PDF-Datei inC#
zu öffnen -
Verwenden Sie das
PdfDocument
, um eine PDF-Datei inC#
zu öffnen -
Verwenden Sie die Instanz
System.IO.Stream
, um eine PDF-Datei inC#
zu öffnen -
Verwenden Sie das NuGet-Paket
iTextSharp
, um eine PDF-Datei inC#
zu öffnen -
Verwenden Sie den
PdfViewer
aus der Toolbox, um eine PDF-Datei inC#
zu öffnen
In diesem Tutorial erfahren Sie, wie Sie eine PDF-Datei in Windows Form mit C# öffnen. Es gibt sechs Möglichkeiten, mit C#-Programmierung für Ihre Windows-Anwendungen auf eine Datei im Portable Document Format zuzugreifen.
Jede Methode ist basierend auf den Grundkenntnissen des Benutzers in C#-Programmierung und GUI-Steuerelementen angeordnet. Mit den ausführbaren C#-Beispielen können Sie diese verschiedenen Wege ohne Programmierhintergrund verstehen und erlernen.
Sie müssen wissen, dass es keine direkte Unterstützung zum Generieren einer PDF-Datei in C# gibt; Stattdessen können Sie Bibliotheken oder Tools von Drittanbietern verwenden, um eine Datei zu generieren. Das PDFSharp
ist ein Beispiel, das es Ihren Windows-Anwendungen ermöglicht, Zeichenroutinen zu verwenden, die von GDI+
bekannt sind und unter der MIT-Lizenz veröffentlicht wurden.
Verwenden Sie die Methode Process.Start()
, um eine PDF-Datei in C#
zu öffnen
Die Methode System.Diagnostics.Process.Start()
in C# fungiert als Systemstandard-PDF-Datei oder andere Dokumentanzeige. Ein häufiges Problem, das viele Anfänger bei diesem Ansatz haben, ist der Dateipfad.
Wenn Sie einen relativen Pfad von der .exe
-Datei des Programms zu einem Ordner mit Ressourcen benötigen, fügen Sie Ihrem Dateipfad Resources\ oder ...\Resources\
hinzu. Andernfalls können Sie Ihre PDF-Dateien mit Path.GetTempPath()
als eingebettete Ressource zu einem C#-Projekt hinzufügen, indem Sie sie an einem temporären Ort speichern und öffnen.
using System;
using System.Diagnostics; // essential namespace
using System.Windows.Forms;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
/* alternative approach
ProcessStartInfo file_info = new ProcessStartInfo();
file_info.FileName = "report.pdf";
string _path = @"C:\Users\DELL"; // file path
file_info.Arguments = _path;
Process.Start(file_info);
*/
Process.Start(@"C:\Users\DELL\report.pdf");
}
}
}
Ausgang:
Er gehört zum Namensraum System.Diagnostics
, der auch die Definition von ProcessStartInfo
enthält. Es hat verschiedene Parameter, darunter: fileName
, arguments
, userName
, password
und domain
, um auf Dateien, einschließlich PDFs, zuzugreifen.
Verwenden Sie den DynamicPDF
-Viewer, um eine PDF-Datei in C#
zu öffnen
Der DynamicPDF
-Viewer ist ein leistungsstarkes Tool für .NET in Windows-Anwendungen, um über eine Datei, ein Byte-Array oder eine passwortgeschützte Datei auf ein PDF zuzugreifen oder ein PDF über einen Stream
zu öffnen. Die Beispiele aus dieser Methode erklären, wie Sie den DynamicPDF
-Viewer verwenden können, um auf .pdf
-Dateien zuzugreifen oder diese zu öffnen.
Installieren Sie diesen Viewer mit dem von DynamicPDF
bereitgestellten MSI-Installer und fügen Sie nach erfolgreicher Installation das DynamicPDFViewer
-Control zu Ihrer Visual Studio-Toolbox hinzu. Jetzt ist es eine gültige Option, auf die Toolbox zuzugreifen, um Ihren Windows Forms ein DynamicPDFViewer
-Steuerelement hinzuzufügen.
Es ist ein Premium-Tool mit anpassbaren Funktionen zur Verbesserung der Leistung Ihrer C#-Anwendungen. Sie können diesen Viewer vollständig in jede .NET
-WinForm-Anwendung einbetten, sodass Sie sich nicht mehr auf einen externen Viewer für die Anzeige oder Interaktion mit Ihren Dokumenten verlassen müssen und von seiner hohen Effizienz, Zuverlässigkeit und Kompatibilität profitieren können.
using System;
using System.Windows.Forms;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
pdfViewer1.Open(@"C:\Users\DELL\report.pdf");
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
Ausgang:
Sie können es als NuGet-Paket in Visual Studio unter dem Namen ceTe.DynamicPDF.Viewer.NET
installieren. Die x64- und x86-Versionen dieses Tools sind verfügbar, installieren Sie es und setzen Sie seinen Verweis auf Ihr C#-Projekt, um PDF-Dateien effizienter zu öffnen.
Verwenden Sie das PdfDocument
, um eine PDF-Datei in C#
zu öffnen
Die Open
-Methode ist extrem einfach und berühmt, wenn es darum geht, eine PDF-Datei in C# mit etwas wie pdfViewer.Open(pdf_path);
zu öffnen. und falls Sie ein PDF direkt aus einem Byte-Array öffnen möchten, für das Sie eine Instanz von pdfDocument
erstellen müssen, um das Byte-Array an einen Konstruktor zu übergeben, können Sie die Open
-Methode verwenden.
Übergeben Sie die pdfDocument
-Instanz an das Viewer
-Steuerelement, das Sie mit der Open
-Methode erstellt haben, wie pdfDocument pdf_doc = new pdfDocument(pdf_file);
und kann es mit der Open
-Methode pdfViewer.Open(pdf_doc);
ausführen.
Am wichtigsten ist, dass Sie für passwortgeschützte PDF-Dateien das Passwort zusammen mit dem Dateipfad an den Konstruktor übergeben müssen, wie pdfDocument pdf_doc = new pdfDocument(pdf_path, "my_password123");
und verwenden Sie die Methode Open
, um diese Instanz an Ihr Viewer-Steuerelement DynamicPDF
zu übergeben.
using System;
using System.Windows.Forms;
using ceTe.DynamicPDF.Viewer;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
PdfDocument file_pdf =
new PdfDocument(data_pdf); // `data_pdf` contains the byte array info of pdf file
pdfViewer1.Open(file_pdf);
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
Wenn Sie auf die Schaltfläche Öffnen
klicken, öffnet sich die PDF-Datei aus dem Byte-Array im DynamicPDF
-Viewer, der in das Windows Form eingebettet ist.
Das Öffnen einer passwortgeschützten PDF-Datei ist so einfach wie das Öffnen einer PDF-Datei aus dem Byte-Array, indem eine Instanz des PdfDocument
erstellt und der Dateipfad und das Passwort an den Konstruktor übergeben werden.
Da das PDF verschlüsselt und passwortgeschützt ist, übergeben Sie die PdfDocument
-Instanz mit der Open()
-Methode an Ihren pdfViewer1
.
using System;
using System.Windows.Forms;
using ceTe.DynamicPDF.Viewer;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
PdfDocument file_pdf = new PdfDocument(
@"C:\Users\DELL\report.pdf", "password"); // first string is the path, and the second
// string is the password on that pdf file
pdfViewer1.Open(file_pdf);
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
Ausgang:
Verwenden Sie die Instanz System.IO.Stream
, um eine PDF-Datei in C#
zu öffnen
Es ist möglich, die Instanz System.IO.Stream
direkt zu verwenden, um diese Aufgabe mit der Methode Open
zu erfüllen. Es erfordert das Erstellen einer pdfDocument
-Instanz aus dem Stream
, etwa pdfDocument pdf_doc = new pdfDocument(pdf_stream);
.
using System;
using System.Windows.Forms;
using ceTe.DynamicPDF.Viewer;
using System.IO;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
/* perform some stream operation to get `pdf_stream`
string dictionary_start = @"C:\Users\DELL\";
string dictionary_end = @"C:\Users\DELL\edvdd";
foreach (string info_file in Directory.EnumerateFiles(dictionary_start))
{
using (FileStream SourceStream = File.Open(info_file, FileMode.Open))
{
using (FileStream DestinationStream = File.Create(dictionary_end +
info_file.Substring(info_file.LastIndexOf('\\'))))
{
await SourceStream.CopyToAsync(DestinationStream);
}
}
}
*/
PdfDocument file_pdf =
new PdfDocument(pdf_stream); // `pdf_stream` contains the pdf path directly from the
// `System.IO.Strem` instance
pdfViewer1.Open(file_pdf);
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
Wenn Sie auf die Schaltfläche Öffnen
klicken, öffnet sich die PDF-Datei aus dem Stream im Viewer pdfViewer1
DynamicPDF
, eingebettet in das Windows Form.
Verwenden Sie das NuGet-Paket iTextSharp
, um eine PDF-Datei in C#
zu öffnen
Erstellen Sie ein neues C#-Projekt (Windows Form C#-Anwendung) in Visual Studio und installieren Sie die iTextSharp
NuGet-Paketversion v5.5.11
oder die aktualisierte Version.
Es ist eine wichtige Bibliothek, da sie Funktionen wie CREATE
, INSERT
, ADAPT
und MAINTAIN
-Dokumente in PDF bietet, sodass Sie alle möglichen .pdf
-Funktionalitäten zu Ihrem C#-Projekt hinzufügen können.
Entwerfen Sie Ihr Formular mit einer Schaltfläche und verwenden Sie den Namensraum iTextSharp.text.pdf.parser
, um Ihr Formular zu handhaben. Als fortschrittliche Werkzeugbibliothek hilft es Ihnen, komplexe PDF-Berichte zu erstellen und Ihre Anwendung mit PDF-Funktionalität zu erweitern.
using System;
using System.Windows.Forms;
using iTextSharp.text.pdf.parser; // essential namespace
using System.Text;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
using (OpenFileDialog dialog_pdffile =
new OpenFileDialog() { Filter = "PDF files|*.pdf", ValidateNames = true,
Multiselect = false }) {
if (dialog_pdffile.ShowDialog() == DialogResult.OK) {
try {
iTextSharp.text.pdf.PdfReader file_proc =
new iTextSharp.text.pdf.PdfReader(dialog_pdffile.FileName);
StringBuilder build_string = new StringBuilder();
for (int i = 1; i <= file_proc.NumberOfPages; i++) {
// read the pdf document
build_string.Append(PdfTextExtractor.GetTextFromPage(file_proc, i));
}
richTextBox1.Text = build_string.ToString();
file_proc.Close();
} catch (Exception ex) {
MessageBox.Show(ex.Message, "Caution, Error occurs!", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
private void richTextBox1_TextChanged(object sender, EventArgs e) {}
}
}
Ausgang:
Verwenden Sie den PdfViewer
aus der Toolbox, um eine PDF-Datei in C#
zu öffnen
In dieser Methode erfahren Sie, wie Sie eine PDF-Datei mit dem WinForms-PDF-Viewer in C# öffnen und welche Assemblys erforderlich sind, um eine einfache PDF-Viewer-C#-Anwendung zu erstellen.
Die Patagames.pdf
ist eine primäre Assembly, die eine Klassenbibliothek zum Erstellen, Bearbeiten und Laden von PDF-Dateien sowie die PDF-Rendering-Engine enthält.
Die Patagames.Pdf.WinForms
-Assembly enthält das PdfViewer UserControl
und andere UI-Steuerelemente für den PDF-Viewer, und dies sind die einzigen zwei Assemblys, die für diesen WinForms-.pdf
-Viewer erforderlich sind.
Das manuelle Erstellen des Steuerelements aus dem Code ist ein komplexer Prozess mit vielen Vorteilen. Sie können damit einen PDF-Viewer erstellen, indem Sie das Steuerelement einfach aus der VS-Toolbox ziehen und im Designerfenster Ihres C#-Formulars ablegen. Navigieren Sie zur SDK-Registerkarte Patagames Pdf.Net
und ziehen Sie das Toolbox-Element PdfViewer
in das Designer-Fenster.
Denken Sie daran, dass pdfViewer
keine Elemente der Benutzeroberfläche enthält und alle wichtigen Funktionen über öffentliche Methoden verfügbar sind.
Nachdem Sie die Instanz zum Designer hinzugefügt haben, können Sie das Dokument im pdfViewerControl
mit etwas wie pdfViewer1.LoadDocument("file_name.pdf");
laden.
using System;
using System.Windows.Forms;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
pdfViewer1.LoadDocument(@"C:\Users\DELL\Resumed.pdf");
}
private void pdfViewer1_Load(object sender, EventArgs e) {}
}
}
Ausgang:
Ein weiterer Ansatz, den Sie mit Hilfe dieser SDK-Registerkarte verwenden können, ist das Öffnen eines PDF-Dokuments mithilfe der Eigenschaften, indem Sie zur Registerkarte Patagames Pdf.Net SDK
navigieren und das Toolbox-Element PdfToolStripMain
in das Designerfenster ziehen, um seine Instanz zum Designer hinzuzufügen .cs
-Datei.
Klicken Sie anschliessend im Eigenschaftsraster auf die Eigenschaft PdfViewer
und wählen Sie aus der Dropdown-Liste pdfViewer1
aus. Jetzt können Sie PDF-Dokumente laden oder hinzufügen, indem Sie auf das Symbol Öffnen
klicken.
Da wir Schaltflächenklickereignisse besprechen, können Sie die Steuerelemente manuell aus dem C#-Code hinzufügen, indem Sie Namespace-Referenzen von Assemblys hinzufügen, eine pdfViewer
-Instanz erstellen und die PDF-Datei laden. Initialisieren Sie im Click-Event des Buttons das PdfViewerControl
, laden Sie das Dokument und fügen Sie es dem Formular hinzu.
Der PDF-Viewer Spire
ist eine valide Alternative zum PDF-Viewer Patagames
, um die PDF-Dateien einfach in C# zu öffnen. Laden Sie Spire.PDFViewer
herunter, fügen Sie ein Toolskript in Ihr Windows-Formular ein und fügen Sie Ihrem C#-Projekt den Verweis Spire.PdfViewer.Forms
hinzu, um die PDF-Dateien entweder direkt aus dem System zu laden oder eine PDF-Datei aus einem Dialogfeld auszuwählen von deinem Computer.
In diesem Lernprogramm haben Sie gelernt, wie Sie eine PDF-Datei oder eine andere Datei in C# öffnen, indem Sie die effektivsten Methoden verwenden, um die Leistung aufrechtzuerhalten.
Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.
GitHub