Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

Ein Vergleich des Aufteilens von PDF in C# zwischen iTextSharp und IronPDF

PDF-Dateien (Portable Document Format) werden häufig zum Teilen und Präsentieren von Dokumenten verwendet, und es gibt Zeiten, in denen Sie möglicherweise ein PDF in mehrere Dateien aufteilen müssen. Egal, ob Sie bestimmte Seiten extrahieren, ein großes Dokument in kleinere Abschnitte unterteilen oder einzelne Dateien für jedes Kapitel erstellen möchten, das Aufteilen von PDFs kann in verschiedenen Szenarien eine wertvolle Aufgabe sein.

In diesem Artikel erfahren Sie, wie Sie PDFs mit C# aufteilen. C# ist eine vielseitige und leistungsstarke Sprache, und es gibt mehrere Bibliotheken, die es relativ einfach machen, mit PDFs zu arbeiten. Wir werden die folgenden zwei Bibliotheken zum Aufteilen von PDFs in C# untersuchen.

  1. iTextSharp
  2. IronPDF

PDF-Aufteilung in C# mit iTextSharp

  1. Installieren Sie zuerst die iText7-Bibliothek.
  2. Erstellen Sie einen PdfReader aus der Eingabe-PDF-Datei.
  3. Verwenden Sie ein PdfDocument, um mit dem PDF-Inhalt zu arbeiten.
  4. Berechnen Sie die Anzahl der Seiten für jede geteilte Datei.
  5. Legen Sie anfängliche Seitenbereichswerte fest.
  6. Verwenden Sie eine Schleife für jede geteilte Datei.
  7. Erstellen Sie ein neues PdfDocument für die aktuelle geteilte Datei.
  8. Kopieren Sie Seiten vom Originaldokument in das neue.
  9. Aktualisieren Sie die Seitenbereichswerte für die nächste Iteration.
  10. Speichern Sie das fertige Ausgabedokument PDF.
  11. Wiederholen, bis alle Dateien erstellt sind.
  12. Setzen Sie den Prozess für die angegebene Anzahl von geteilten Dateien fort.

IronPDF

Ein Vergleich des Aufteilens von PDF in C# zwischen iTextSharp und IronPDF: Abbildung 1 - IronPDF-Webseite

IronPDF ist eine leistungsstarke C#-Bibliothek, die für die Arbeit mit PDF-Dateien entwickelt wurde. Es bietet Funktionen zum Erstellen, Ändern und Extrahieren von Inhalten aus PDF-Dokumenten. Entwickler können PDFs von Grund auf neu erstellen, bestehende PDFs bearbeiten und sie zusammenführen oder aufteilen. Darüber hinaus ist IronPDF ausgesprochen gut darin, HTML-Inhalte in PDF-Format zu konvertieren, was nützlich ist, um Berichte oder Dokumentationen zu erstellen. Mit Unterstützung für digitale Signaturen, Sicherheitsfunktionen und hochwertiger Ausgabe vereinfacht IronPDF PDF-bezogene Aufgaben in .NET-Anwendungen.

iTextSharp

Ein Vergleich des Aufteilens von PDF in C# zwischen iTextSharp und IronPDF: Abbildung 2 - iTextSharp-Webseite

iTextSharp (iText 7) ist eine weit verbreitete Bibliothek für die Arbeit mit PDF-Dateien im .NET-Framework. Es bietet leistungsstarke Funktionen zum Erstellen, Ändern und Extrahieren von Inhalten aus PDF-Dokumenten programmatisch. Entwickler können iTextSharp verwenden, um Text, Bilder, Tabellen und andere grafische Elemente zu PDFs hinzuzufügen. Darüber hinaus unterstützt es Dokumentenzusammenstellung, digitale Signaturen und die Einhaltung von Archivierungs- und Zugänglichkeitsstandards. Ursprünglich eine Java-Bibliothek, wurde iTextSharp auf .NET portiert und hat eine aktive Community von Entwicklern und Nutzern.

Installation der IronPDF Bibliothek

Um das IronPDF-NuGet-Paket mit der Paket-Manager-Konsole in Visual Studio zu installieren, folgen Sie diesen Schritten:

  1. Gehen Sie in Visual Studio zu Tools -> NuGet-Paket-Manager -> Paket-Manager-Konsole.
  2. Verwenden Sie den folgenden Befehl, um das IronPDF-NuGet-Paket zu installieren:

    Install-Package IronPdf

Dadurch wird das IronPDF-Paket zusammen mit seinen Abhängigkeiten in Ihr Projekt heruntergeladen und installiert. Sobald die Installation abgeschlossen ist, können Sie IronPDF in Ihrem C#-Projekt für PDF-bezogene Aufgaben verwenden.

Alternativ können Sie IronPDF mit dem NuGet-Paket-Manager in Visual Studio installieren oder das Paket direkt zu Ihrer Projektdatei hinzufügen. Eine andere Option ist das Herunterladen des Pakets von der offiziellen Webseite und das manuelle Hinzufügen zu Ihrem Projekt. Jede Methode bietet einen einfachen Weg, IronPDF in Ihr C#-Projekt für PDF-bezogene Funktionalitäten zu integrieren.

Installation der iTextSharp-Bibliothek

Um iTextSharp mithilfe der Paket-Manager-Konsole in Visual Studio zu installieren, können Sie diese Schritte befolgen:

  1. Gehen Sie in Visual Studio zu Tools -> NuGet-Paket-Manager -> Paket-Manager-Konsole.
  2. Verwenden Sie den folgenden Befehl, um das iTextSharp-NuGet-Paket zu installieren:

    Install-Package itext7
    Install-Package itext7
    SHELL

Dadurch wird das iTextSharp-Paket zusammen mit seinen Abhängigkeiten in Ihr Projekt heruntergeladen und installiert. Sobald die Installation abgeschlossen ist, können Sie iTextSharp in Ihrem C#-Projekt für die Arbeit mit PDFs verwenden.

PDF-Dokumente in C# mit IronPDF aufteilen

Wir können eine PDF-Datei mit IronPDF in mehrere PDF-Dateien aufteilen. Es bietet einen einfachen Weg, dies zu erreichen. Der folgende Code nimmt die Quell-PDF-Datei als Eingabe und teilt sie in mehrere PDF-Dateien auf.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        string file = "input.pdf";
        // The folder to save the split PDFs
        string outputFolder = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles);
    }

    static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        // Load the input PDF
        PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);

        // Initialize page range values
        int firstPage = 1;
        int lastPage = 2;
        int totalPageInOneFile = sourceFile.PageCount / numberOfSplitFiles;

        for (int i = 1; i <= numberOfSplitFiles; i++)
        {
            // Copy multiple pages into a new document
            PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage, lastPage);

            // Generate the output file path
            string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";

            // Save the new split PDF
            newSplitPDF.SaveAs(name);

            // Update page range values for the next iteration
            firstPage = lastPage + 1;
            lastPage += totalPageInOneFile;
        }
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        string file = "input.pdf";
        // The folder to save the split PDFs
        string outputFolder = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles);
    }

    static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        // Load the input PDF
        PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);

        // Initialize page range values
        int firstPage = 1;
        int lastPage = 2;
        int totalPageInOneFile = sourceFile.PageCount / numberOfSplitFiles;

        for (int i = 1; i <= numberOfSplitFiles; i++)
        {
            // Copy multiple pages into a new document
            PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage, lastPage);

            // Generate the output file path
            string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";

            // Save the new split PDF
            newSplitPDF.SaveAs(name);

            // Update page range values for the next iteration
            firstPage = lastPage + 1;
            lastPage += totalPageInOneFile;
        }
    }
}
$vbLabelText   $csharpLabel

Code-Erklärung

Zweck dieses Codes ist es, eine gegebene PDF-Datei mithilfe der IronPDF-Bibliothek in mehrere kleinere PDF-Dateien aufzuteilen. Die Methode SplitPdfUsingIronPDF ist definiert, um diese Funktionalität zu erreichen.

Methodenparameter

  1. inputPdfPath: Ein String, der den Pfad zur Eingabe-PDF-Datei darstellt (z. B. "input.pdf").
  2. outputFolder: Ein String, der den Ausgabepfad angibt, wo die gesplitteten PDF-Dateien gespeichert werden (z. B. "output_split").
  3. numberOfSplitFiles: Eine Ganzzahl, die angibt, in wie viele kleinere PDF-Dateien das Original-PDF aufgeteilt wird.

Splitting-Prozess

Innerhalb der Methode SplitPdfUsingIronPDF:

  1. Ein PdfDocument-Objekt namens sourceFile wird erstellt, indem das PDF vom angegebenen inputPdfPath geladen wird.
  2. Zwei ganzzahlige Variablen, firstPage und lastPage, werden initialisiert. Diese repräsentieren den Seitenbereich für die Aufteilung.
  3. totalPageInOneFile wird berechnet, indem die Gesamtanzahl der Seiten der Quell-PDF durch die angegebene numberOfSplitFiles geteilt wird.
  4. Eine Schleife iteriert von 1 bis numberOfSplitFiles:
  5. Ein neues PdfDocument-Objekt namens newSplitPDF wird erstellt.
  6. Seiten von firstPage bis lastPage (einschließlich) werden vom sourceFile zu newSplitPDF kopiert.
  7. Das resultierende kleinere PDF wird mit einem Dateinamen wie "SplitPDF_IronPDF_1.pdf" (für die erste Aufteilung) im angegebenen Ausgabeverzeichnis gespeichert.
  8. Die Werte von firstPage und lastPage werden für die nächste Iteration aktualisiert.

Hinweis

Sie sollten "input.pdf" durch den tatsächlichen Pfad zu Ihrer Eingabe-PDF-Datei ersetzen. Stellen Sie sicher, dass die IronPDF-Bibliothek ordnungsgemäß in Ihrem Projekt installiert und referenziert ist.

Die Ausgabedateien werden erstellt als:

Ein Vergleich des Aufteilens von PDF in C# zwischen iTextSharp und IronPDF: Abbildung 3 - Erstellte Ausgabedateien

PDFs aufteilen in C# mit iTextSharp

Jetzt werden wir iTextSharp verwenden, um unser PDF-Dokument in mehrere PDF-Dateien aufzuteilen. Der folgende Code nimmt die Quelldatei als Eingabe und teilt dieses PDF-Dokument in mehrere kleinere Dateien auf.

using System;
using iText.Kernel.Pdf;

class Program
{
    static void Main(string[] args)
    {
        string inputPath = "input.pdf";
        // Output PDF files path (prefix for the generated files)
        string outputPath = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles);
    }

    static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        using (PdfReader reader = new PdfReader(inputPdfPath))
        {
            using (PdfDocument doc = new PdfDocument(reader))
            {
                // Calculate the number of pages for each split file
                int totalPageInOneFile = doc.GetNumberOfPages() / numberOfSplitFiles;
                int firstPage = 1;
                int lastPage = totalPageInOneFile;

                for (int i = 1; i <= numberOfSplitFiles; i++)
                {
                    // Generate the output file path
                    string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";

                    // Create a new document and attach a writer for the specified output file
                    using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename)))
                    {
                        // Copy pages from the original document to the new document
                        doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
                    }

                    // Update page range values for the next iteration
                    firstPage = lastPage + 1;
                    lastPage += totalPageInOneFile;
                }
            }
        }
    }
}
using System;
using iText.Kernel.Pdf;

class Program
{
    static void Main(string[] args)
    {
        string inputPath = "input.pdf";
        // Output PDF files path (prefix for the generated files)
        string outputPath = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles);
    }

    static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        using (PdfReader reader = new PdfReader(inputPdfPath))
        {
            using (PdfDocument doc = new PdfDocument(reader))
            {
                // Calculate the number of pages for each split file
                int totalPageInOneFile = doc.GetNumberOfPages() / numberOfSplitFiles;
                int firstPage = 1;
                int lastPage = totalPageInOneFile;

                for (int i = 1; i <= numberOfSplitFiles; i++)
                {
                    // Generate the output file path
                    string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";

                    // Create a new document and attach a writer for the specified output file
                    using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename)))
                    {
                        // Copy pages from the original document to the new document
                        doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
                    }

                    // Update page range values for the next iteration
                    firstPage = lastPage + 1;
                    lastPage += totalPageInOneFile;
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

Code Erklärung

Dieser Code zeigt, wie man eine große PDF-Datei mit iTextSharp in kleinere Teile aufteilt. Jedes kleinere PDF-Dokument wird einen Teil des Originaldokuments enthalten.

PDF-Aufteilung mit iTextSharp

  1. Die Hauptfunktionalität ist in der Methode SplitPdfUsingiTextSharp gekapselt.
  2. Die oben genannte Methode nimmt drei Parameter: inputPdfPath, outputFolder und numberOfSplitFiles.

Verwendung von PdfReader und PdfDocument

Innerhalb der Methode SplitPdfUsingiTextSharp:

  1. Ein PdfReader-Objekt namens reader wird erstellt, indem das PDF vom angegebenen inputPdfPath geladen wird.
  2. Ein PdfDocument-Objekt namens doc wird mit dem reader initialisiert.
  3. Die Gesamtanzahl der Seiten im Quell-PDF wird durch numberOfSplitFiles geteilt, um zu bestimmen, wie viele Seiten jedes kleinere PDF enthalten sollte.

Splitting-Prozess

Eine Schleife iteriert von 1 bis numberOfSplitFiles:

  1. Eine neue kleinere PDF-Datei wird mit einem Dateinamen wie "SplitPDF_iTextSharp_1.pdf" (für die erste Aufteilung) im angegebenen Ausgabeverzeichnis erstellt.
  2. Innerhalb dieses neuen PDF-Dokuments (pdfDocument) werden Seiten aus dem ursprünglichen doc kopiert:
  3. firstPage bis lastPage (einschließlich) werden kopiert.
  4. Das kleinere PDF wird gespeichert.
  5. Die Werte von firstPage und lastPage werden für die nächste Iteration aktualisiert.

Hinweis

Stellen Sie sicher, dass die iTextSharp-Bibliothek ordnungsgemäß in Ihrem Projekt installiert und referenziert ist. Ersetzen Sie "input.pdf" durch den tatsächlichen Pfad zu Ihrer Eingabe-PDF-Datei.

Ein Vergleich des Aufteilens von PDF in C# zwischen iTextSharp und IronPDF: Abbildung 4 - Erstellte Ausgabedateien

Vergleich

Um die zwei Aufteilungsmethoden mit iTextSharp und IronPDF zu vergleichen, lassen Sie uns sie basierend auf mehreren Faktoren bewerten:

  1. Benutzerfreundlichkeit:
    • iTextSharp: Die Methode iTextSharp besteht darin, einen PdfReader, ein PdfDocument und einen PdfWriter zu erstellen. Es berechnet Seitenbereiche und kopiert Seiten in ein neues Dokument. Dieser Ansatz erfordert das Verständnis der iTextSharp-API.
    • IronPDF: Die Methode IronPDF besteht darin, ein PdfDocument aus der Quelldatei zu erstellen, Seiten zu kopieren und sie in einer neuen Datei zu speichern. Es hat eine einfachere API.
  2. Code-Lesbarkeit:
    • iTextSharp: Der Code beinhaltet mehr Schritte, was ihn etwas länger und potenziell komplexer zu lesen macht.
    • IronPDF: Der Code ist prägnant und lesbarer aufgrund weniger Schritte und Methodenanrufe.
  3. Leistung:
    • iTextSharp: Die Leistung kann durch das wiederholte Erstellen und Löschen von PdfDocument-Instanzen beeinträchtigt werden.
    • IronPDF: Die Methode beinhaltet weniger Schritte und bietet eine bessere Leistung durch effizientes Kopieren der Seiten.
  4. Speichernutzung:
    • iTextSharp: Das Erstellen mehrerer PdfDocument-Instanzen wird mehr Speicher verbrauchen.
    • IronPDF: Die Methode ist speichereffizienter durch ihren vereinfachten Ansatz.

Abschluss

Zusammenfassend bieten sowohl iTextSharp als auch IronPDF robuste Lösungen für das Aufteilen von PDF-Dateien in C#, jede mit ihren eigenen Vorteilen. IronPDF sticht durch seine Einfachheit, Lesbarkeit und potenziell bessere Leistung durch einen direkteren Ansatz hervor.

Entwickler, die ein Gleichgewicht zwischen Vielseitigkeit und Benutzerfreundlichkeit suchen, könnten IronPDF als eine überzeugende Wahl finden. Darüber hinaus bietet IronPDF eine kostenlose Testversion. Letztendlich hängt die Wahl zwischen iTextSharp und IronPDF von den individuellen Projektanforderungen und dem bevorzugten Entwicklungsstil ab.

Hinweis:iTextSharp ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite ist nicht mit iTextSharp verbunden, genehmigt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Inhaber. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie kann ich ein PDF in C# aufteilen, während das ursprüngliche Format beibehalten wird?

Sie können IronPDF verwenden, um ein PDF in C# aufzuteilen, während das Format erhalten bleibt. IronPDF bietet eine einfache API, mit der Sie ein PDF laden und die Seitenbereiche zum Aufteilen angeben können, wobei das ursprüngliche Format in den resultierenden PDFs beibehalten wird.

Was sind die Hauptunterschiede zwischen iTextSharp und IronPDF für das Aufteilen von PDFs in C#?

Die Hauptunterschiede liegen in der Benutzerfreundlichkeit und der Leistung. IronPDF bietet eine einfachere API mit weniger Schritten, was das Aufteilen von PDFs erleichtert, ohne die Formatierung zu verlieren. Auf der anderen Seite erfordert iTextSharp die Erstellung mehrerer Instanzen wie PdfReader, PdfDocument und PdfWriter, was komplizierter sein kann.

Kann ich bestimmte Seiten aus einem PDF mit C# extrahieren?

Ja, mit IronPDF können Sie einfach bestimmte Seiten aus einem PDF in C# extrahieren. Durch Laden des PDFs und Festlegen der gewünschten Seitenzahlen können Sie mit IronPDF diese Seiten extrahieren und als neues PDF-Dokument speichern.

Wie verbessert IronPDF die Lesbarkeit des Codes im Vergleich zu anderen PDF-Bibliotheken?

IronPDF verbessert die Lesbarkeit des Codes durch eine klare und prägnante API, die die Notwendigkeit für mehrere Klassen und Objekte reduziert. Dies vereinfacht den Code, der für Aufgaben zur PDF-Manipulation wie das Aufteilen erforderlich ist, und führt zu einem übersichtlicheren und besser wartbaren Code.

Ist es möglich, die Aufteilungsfunktionalität eines PDFs in C# zu testen, bevor man eine Bibliothek kauft?

Ja, IronPDF bietet eine kostenlose Testversion an, die Entwicklern erlaubt, seine Funktionalitäten zur PDF-Aufteilung und andere Merkmale zu testen. Diese Testphase ermöglicht es Ihnen, seine Fähigkeiten und Leistung zu bewerten, bevor Sie sich für einen Kauf entscheiden.

Welche Faktoren sollten bei der Auswahl einer PDF-Bibliothek zum Aufteilen von Dokumenten berücksichtigt werden?

Bei der Auswahl einer PDF-Bibliothek sollten Faktoren wie Benutzerfreundlichkeit, API-Einfachheit, Leistung und die Fähigkeit, das ursprünglich Format des Dokuments beizubehalten, berücksichtigt werden. IronPDF wird oft aufgrund seiner benutzerfreundlichen API und effizienten Leistung bevorzugt.

Wie kann ich IronPDF in ein Visual Studio C#-Projekt installieren?

Um IronPDF in einem Visual Studio C#-Projekt zu installieren, verwenden Sie die NuGet Package Manager-Konsole mit dem Befehl Install-Package IronPdf. Sie können es auch über die NuGet Package Manager-Oberfläche hinzufügen oder von der offiziellen IronPDF-Website herunterladen.

Beeinflusst das Aufteilen eines PDFs Qualität oder Formatierung?

Das Aufteilen eines PDFs mit IronPDF stellt sicher, dass die Qualität und Formatierung des Originaldokuments erhalten bleibt. IronPDFs effiziente Verarbeitung bewahrt die Integrität des Originalinhalts.

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