Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
PDF (Portable Document Format) dateien werden häufig für die gemeinsame Nutzung und Präsentation von Dokumenten verwendet, und es kann vorkommen, dass Sie eine PDF-Datei in mehrere Dateien aufteilen müssen. Ganz gleich, ob Sie bestimmte Seiten extrahieren, ein großes Dokument in kleinere Abschnitte unterteilen oder einzelne Dateien für jedes Kapitel erstellen möchten, die Aufteilung von PDFs kann in verschiedenen Szenarien eine wertvolle Aufgabe sein.
In diesem Artikel lernen wir, wie man PDFs mit C# aufteilt. C# ist eine vielseitige und leistungsstarke Sprache, und es sind mehrere Bibliotheken verfügbar, die die Bearbeitung von PDF-Dateien relativ einfach machen. Wir werden die folgenden zwei Bibliotheken für die Aufteilung von PDF in C# untersuchen.
Installieren Sie zunächst die iText7-Bibliothek
Erstellen Sie einen PdfReader aus der PDF-Eingabedatei.
Verwenden Sie ein PdfDocument, um mit dem PDF-Inhalt zu arbeiten.
Berechnen Sie die Anzahl der Seiten für jede geteilte Datei.
Legen Sie die Anfangswerte für den Seitenbereich fest.
Verwenden Sie eine Schleife, um jede geteilte Datei zu verarbeiten.
Erstellen Sie ein neues PdfDocument für die aktuelle geteilte Datei.
Kopieren Sie Seiten aus dem Originaldokument in das neue Dokument.
Aktualisieren der Seitenbereichswerte für die nächste Iteration.
Speichern Sie die fertige PDF-Ausgabe.
Wiederholen Sie dies, bis alle Dateien erstellt sind:
IronPDF ist eine leistungsstarke C#-Bibliothek, die für die Arbeit mit PDF-Dateien entwickelt wurde. Es bietet Funktionen für *Kreieren, Änderungund Extrahieren inhalt von PDF-Dokumenten. Entwickler können PDFs von Grund auf neu erstellen, bestehende PDFs bearbeiten und Zusammenführen oder Aufteilen sie. Darüber hinaus ist IronPDF hervorragend in der Lage, HTML-Inhalte in das PDF-Format zu konvertieren, was es für die Erstellung von Berichten oder Dokumentationen nützlich macht. Mit der Unterstützung von digitalen Signaturen, Sicherheitsfunktionen und hochwertiger Ausgabe vereinfacht IronPDF PDF-bezogene Aufgaben in .NET-Anwendungen.
iTextSharp (iText 7) ist eine weit verbreitete Bibliothek für die Arbeit mit PDF-Dateien im .NET-Framework. Es bietet leistungsstarke Funktionen zum programmgesteuerten Erstellen, Ändern und Extrahieren von Inhalten aus PDF-Dokumenten. Entwickler können mit iTextSharp Text, Bilder, Tabellen und andere grafische Elemente zu PDFs hinzufügen. Darüber hinaus unterstützt es die Zusammenstellung von Dokumenten, digitale Signaturen und die Einhaltung von Archivierungs- und Zugänglichkeitsstandards. Ursprünglich eine Java-Bibliothek, wurde iTextSharp nach .NET portiert und hat eine aktive Gemeinschaft von Entwicklern und Benutzern.
Zur Installation der IronPDF NuGet-Paket mit der Paketmanager-Konsole in Visual Studio, folgen Sie diesen Schritten:
Gehen Sie in Visual Studio zu Tools -> NuGet Package Manager -> Package Manager Console.
:ProductInstall
Dadurch wird das IronPDF-Paket zusammen mit seinen Abhängigkeiten heruntergeladen und in Ihrem Projekt 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 Package Manager in Visual Studio installieren oder das Paket direkt zu Ihrer Projektdatei hinzufügen. Eine weitere Möglichkeit ist das Herunterladen des Pakets von der offizielle Website und fügen es manuell zu Ihrem Projekt hinzu. Jede Methode bietet eine einfache Möglichkeit, IronPDF in Ihr C#-Projekt für PDF-bezogene Funktionalitäten zu integrieren.
Zum Installieren iTextSharp mit der Paketmanager-Konsole in Visual Studio können Sie die folgenden Schritte ausführen:
Gehen Sie in Visual Studio zu Tools -> NuGet Package Manager -> Package Manager Console.
Install-Package itext7
Dadurch wird das iTextSharp-Paket zusammen mit seinen Abhängigkeiten heruntergeladen und in Ihrem Projekt installiert. Sobald die Installation abgeschlossen ist, können Sie iTextSharp in Ihrem C#-Projekt für die Arbeit mit PDFs verwenden.
Mit IronPDF können wir eine PDF-Datei in mehrere PDF-Dateien aufteilen. Es bietet eine einfache Möglichkeit, dies zu erreichen. Der folgende Code nimmt die PDF-Quelldatei als Eingabe und teilt sie in mehrere PDF-Dateien auf.
static void Main(string [] args)
{
string file = "input.pdf"'
// Call the SplitPdf method to split the PDF
SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
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);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
static void Main(string [] args)
{
string file = "input.pdf"'
// Call the SplitPdf method to split the PDF
SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
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);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
Shared Sub Main(ByVal args() As String)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' string file = "input.pdf"' SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles); } static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles) { PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath); int firstPage = 1; int lastPage = 2; int totalPageInOneFile = sourceFile.PageCount / NumberOfSplitFiles; for(int i = 1; i <= NumberOfSplitFiles; i++) { PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage,lastPage); string name = string.Format("{0}\SplitPDF_IronPDF_{1}.pdf", outputFolder, i); newSplitPDF.SaveAs(name); firstPage = lastPage + 1; lastPage += totalPageInOneFile; } }
Der Zweck dieses Codes ist die Aufteilung einer gegebenen PDF-Datei in mehrere kleinere PDF-Dateien unter Verwendung der IronPDF-Bibliothek. Die Methode SplitPdfUsingIronPDF wird definiert, um diese Funktionalität zu erreichen.
eingabePdfPfad: Eine Zeichenfolge, die den Pfad zur PDF-Eingabedatei angibt (z.B. "input.pdf").
outputFolder: Eine Zeichenkette, die den Ausgabeordner angibt, in dem die aufgeteilten PDF-Dateien gespeichert werden sollen (z.B. "output_split").
Innerhalb der Methode SplitPdfUsingIronPDF:
Ein PdfDocument-Objekt namens sourceFile wird erstellt, indem die PDF-Datei aus dem angegebenen inputPdfPath geladen wird.
Zwei ganzzahlige Variablen, firstPage und lastPage, werden initialisiert. Diese stellen den Seitenbereich für die Aufteilung dar.
totalPageInOneFile wird berechnet, indem die Gesamtseitenzahl des Quell-PDFs durch die angegebene NumberOfSplitFiles geteilt wird.
Eine Schleife iteriert von 1 bis NumberOfSplitFiles:
Ein neues PdfDocument-Objekt namens newSplitPDF wird erstellt.
Seiten von firstPage bis lastPage (inklusive) werden aus der Quelldatei in newSplitPDF kopiert.
Die resultierende kleinere PDF-Datei wird unter einem Dateinamen wie "SplitPDF_IronPDF_1.pdf" gespeichert (für den ersten Split) im angegebenen Ausgabeordner.
Ersetzen Sie "input.pdf" durch den tatsächlichen Pfad zu Ihrer PDF-Eingabedatei. Stellen Sie sicher, dass die IronPDF-Bibliothek ordnungsgemäß installiert ist und in Ihrem Projekt referenziert wird.
Die Ausgabedateien werden wie folgt erstellt:
Jetzt werden wir iTextSharp verwenden, um unser PDF-Dokument in mehrere PDF-Dateien aufzuteilen. Der folgende Code nimmt die Quelldatei als Eingabe und teilt das PDF-Dokument in mehrere kleinere Dateien auf.
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;
// 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))
{
int totalPageInOneFile = doc.GetNumberOfPages() / NumberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile; // int pagenumber
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // create output file
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
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;
// 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))
{
int totalPageInOneFile = doc.GetNumberOfPages() / NumberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile; // int pagenumber
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // create output file
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
Shared Sub Main(ByVal args() As String)
Dim inputPath As String = "input.pdf"
' Output PDF files path (prefix for the generated files)
Dim outputPath As String = "output_split"
Dim NumberOfSplitFiles As Integer = 3
' Call the SplitPdf method to split the PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, NumberOfSplitFiles)
End Sub
Shared Sub SplitPdfUsingiTextSharp(ByVal inputPdfPath As String, ByVal outputFolder As String, ByVal NumberOfSplitFiles As Integer)
Using Reader As New PdfReader(inputPdfPath)
Using doc As New PdfDocument(Reader)
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim totalPageInOneFile As Integer = doc.GetNumberOfPages() / NumberOfSplitFiles
Dim firstPage As Integer = 1
Dim lastPage As Integer = totalPageInOneFile ' int pagenumber
For i As Integer = 1 To NumberOfSplitFiles
Dim filename As String = $"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf"
Using pdfDocument As New PdfDocument(New PdfWriter(filename)) ' create output file
'pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument)
End Using
firstPage = lastPage + 1
lastPage += totalPageInOneFile
Next i
End Using
End Using
End Sub
Der obige 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.
Die Hauptfunktionalität ist in der Methode SplitPdfUsingiTextSharp gekapselt.
Innerhalb der Methode SplitPdfUsingiTextSharp:
Ein PdfReader-Objekt namens Reader wird erstellt, indem die PDF-Datei aus dem angegebenen inputPdfPath geladen wird.
Ein PdfDocument-Objekt namens DOC wird mit dem Reader initialisiert.
Eine Schleife iteriert von 1 bis NumberOfSplitFiles:
Es wird eine neue kleinere PDF-Datei mit einem Dateinamen wie "SplitPDF_iTextSharp_1.pdf" erstellt (für den ersten Split) im angegebenen Ausgabeordner.
In diesem neuen PDF-Dokument (pdfDocument)die Seiten werden aus dem Originaldokument kopiert:
firstPage bis lastPage (inklusive) kopiert werden.
Die kleinere PDF-Datei wird gespeichert.
Stellen Sie sicher, dass die iTextSharp-Bibliothek ordnungsgemäß installiert ist und in Ihrem Projekt referenziert wird. Ersetzen Sie "input.pdf" durch den tatsächlichen Pfad zu Ihrer PDF-Eingabedatei.
Um die beiden Split-Methoden mit iTextSharp und IronPDF zu vergleichen, sollten wir sie anhand verschiedener Faktoren bewerten:
Benutzerfreundlichkeit:
iTextSharp: Die iTextSharp-Methode umfasst die Erstellung eines PdfReaders, PdfDocuments und PdfWriters. Es berechnet die Seitenbereiche und kopiert die Seiten in ein neues Dokument. Dieser Ansatz erfordert ein Verständnis der iTextSharp-API.
Code-Lesbarkeit:
iTextSharp: Der Code umfasst mehr Schritte, wodurch er etwas länger und möglicherweise komplexer zu lesen ist.
Leistung:
iTextSharp: Die Leistung kann durch die wiederholte Erstellung und Entsorgung von PdfDocument-Instanzen beeinträchtigt werden.
Speichernutzung:
iTextSharp: Das Erstellen mehrerer PdfDocument-Instanzen verbraucht mehr Speicher.
Zusammenfassend lässt sich sagen, dass sowohl iTextSharp als auch IronPDF robuste Lösungen für die Aufteilung von PDF-Dateien in C# bieten, jede mit ihren eigenen Vorteilen. IronPDF zeichnet sich durch seine Einfachheit, Lesbarkeit und potenziell bessere Leistung aufgrund eines unkomplizierteren Ansatzes aus.
Für Entwickler, die ein Gleichgewicht zwischen Vielseitigkeit und Benutzerfreundlichkeit suchen, ist IronPDF eine überzeugende Wahl. Außerdem bietet IronPDF eine kostenloser Test. Letztendlich hängt die Wahl zwischen iTextSharp und IronPDF von den individuellen Projektanforderungen und dem bevorzugten Entwicklungsstil ab.
9 .NET API-Produkte für Ihre Bürodokumente