Öffnen Sie eine PDF-Datei in C#

Syed Hassan Sabeeh Kazmi 12 Oktober 2023
  1. Verwenden Sie die Methode Process.Start(), um eine PDF-Datei in C# zu öffnen
  2. Verwenden Sie den DynamicPDF-Viewer, um eine PDF-Datei in C# zu öffnen
  3. Verwenden Sie das PdfDocument, um eine PDF-Datei in C# zu öffnen
  4. Verwenden Sie die Instanz System.IO.Stream, um eine PDF-Datei in C# zu öffnen
  5. Verwenden Sie das NuGet-Paket iTextSharp, um eine PDF-Datei in C# zu öffnen
  6. Verwenden Sie den PdfViewer aus der Toolbox, um eine PDF-Datei in C# zu öffnen
Öffnen Sie eine PDF-Datei in C#

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:

Prozessstart

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:

DynamicPDF

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:

PdfDocument-Passwort

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:

iTextSharp

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:

PdfViewer

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.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

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

Verwandter Artikel - Csharp PDF