Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
PDF (EN ANGLAIS)(Format de document portable) sont largement utilisés pour le partage et la présentation de documents, et il peut arriver que vous ayez besoin de diviser un PDF en plusieurs fichiers. Que vous souhaitiez extraire des pages spécifiques, diviser un document volumineux en sections plus petites ou créer des fichiers individuels pour chaque chapitre, la division des PDF peut s'avérer une tâche précieuse dans différents scénarios.
Dans cet article, nous allons apprendre à diviser des PDF à l'aide de C#. C# est un langage polyvalent et puissant, et il existe plusieurs bibliothèques qui rendent la manipulation des PDF relativement simple. Nous allons explorer les deux bibliothèques suivantes pour diviser les PDF en C#.
Installez d'abord la bibliothèque iText7
Créer un PdfReader à partir du fichier PDF d'entrée.
Utilisez un PdfDocument pour travailler avec le contenu du PDF.
Calculer le nombre de pages pour chaque fichier fractionné.
Définir les valeurs initiales de la plage de pages.
Utilisez une boucle pour traiter chaque fichier fractionné.
Crée un nouveau document Pdf pour le fichier fractionné actuel.
Copier les pages du document original dans le nouveau document.
Mettre à jour les valeurs de la plage de pages pour la prochaine itération.
Enregistrez le fichier PDF terminé.
Répéter l'opération jusqu'à ce que tous les fichiers soient créés :
IronPDF est une puissante bibliothèque C# conçue pour travailler avec des fichiers PDF. Il offre des fonctionnalités pourcréation, modifiantetextraction contenu des documents PDF. Les développeurs peuvent générer des PDF à partir de zéro, modifier des PDF existants etmerge or split les. En outre, IronPDF excelle dans la conversion de contenu HTML au format PDF, ce qui le rend utile pour générer des rapports ou de la documentation. Grâce à la prise en charge des signatures numériques, des fonctions de sécurité et des résultats de haute qualité, IronPDF simplifie les tâches liées aux PDF dans les applications .NET.
iTextSharp (iText 7) est une bibliothèque largement utilisée pour travailler avec des fichiers PDF dans le Framework .NET. Il offre de puissantes fonctionnalités pour créer, modifier et extraire le contenu des documents PDF de manière programmatique. Les développeurs peuvent utiliser iTextSharp pour ajouter du texte, des images, des tableaux et d'autres éléments graphiques aux PDF. En outre, il prend en charge l'assemblage des documents, les signatures numériques et la conformité aux normes d'archivage et d'accessibilité. Bibliothèque Java à l'origine, iTextSharp a été porté sur .NET et dispose d'une communauté active de développeurs et d'utilisateurs.
Pour installer lePackage IronPDF NuGet à l'aide de la console du gestionnaire de paquets dans Visual Studio, procédez comme suit :
Dans Visual Studio, allez dans Outils -> NuGet Package Manager -> Console du gestionnaire de paquets.
:ProductInstall
Ceci téléchargera et installera le paquetage IronPDF ainsi que ses dépendances dans votre projet. Une fois l'installation terminée, vous pouvez commencer à utiliser IronPDF dans votre projet C# pour les tâches liées aux PDF.
Vous pouvez également installer IronPDF à l'aide du gestionnaire de paquets NuGet dans Visual Studio, ou ajouter le paquetage directement à votre fichier de projet. Une autre option consiste à télécharger le paquetage à partir du sitesite web officiel et l'ajouter manuellement à votre projet. Chaque méthode offre un moyen simple d'intégrer IronPDF dans votre projet C# pour les fonctionnalités liées aux PDF.
Pour installeriTextSharp en utilisant la console du gestionnaire de paquets dans Visual Studio, vous pouvez suivre les étapes suivantes :
Dans Visual Studio, allez dans Outils -> NuGet Package Manager -> Console du gestionnaire de paquets.
Install-Package itext7
Ceci téléchargera et installera le paquetage iTextSharp ainsi que ses dépendances dans votre projet. Une fois l'installation terminée, vous pouvez commencer à utiliser iTextSharp dans votre projet C# pour travailler avec des PDF.
Nous pouvons diviser un fichier PDF en plusieurs fichiers PDF à l'aide d'IronPDF. Il offre un moyen simple d'y parvenir. Le code suivant prend le fichier PDF source en entrée et le divise en plusieurs fichiers PDF.
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; } }
L'objectif de ce code est de diviser un fichier PDF donné en plusieurs fichiers PDF plus petits à l'aide de la bibliothèque IronPDF. La méthode SplitPdfUsingIronPDF est définie pour réaliser cette fonctionnalité.
inputPdfPath : Une chaîne représentant le chemin d'accès au fichier PDF d'entrée(par exemple, "input.pdf").
outputFolder : Une chaîne représentant le dossier de sortie dans lequel les fichiers PDF divisés seront enregistrés(par exemple, "output_split").
Dans la méthode SplitPdfUsingIronPDF :
Un objet PdfDocument nommé sourceFile est créé en chargeant le PDF à partir du chemin d'accès inputPdfPath spécifié.
Deux variables entières, firstPage et lastPage, sont initialisées. Ils représentent la plage de pages pour le fractionnement.
le nombre total de pages dans un fichier est calculé en divisant le nombre total de pages du PDF source par le nombre de fichiers fractionnés spécifié.
Une boucle itère de 1 à NumberOfSplitFiles :
Un nouvel objet PdfDocument nommé newSplitPDF est créé.
Pages de la première à la dernière page(inclusif) sont copiées du fichier source vers newSplitPDF.
Le PDF réduit qui en résulte est enregistré sous un nom de fichier tel que "SplitPDF_IronPDF_1.pdf"(pour le premier fractionnement) dans le dossier de sortie spécifié.
Vous devez remplacer "input.pdf" par le chemin réel de votre fichier PDF d'entrée. Assurez-vous que la bibliothèque IronPDF est correctement installée et référencée dans votre projet.
Les fichiers de sortie sont créés comme suit :
Nous allons maintenant utiliser iTextSharp pour diviser notre document PDF en plusieurs fichiers PDF. Le code suivant prend le fichier source en entrée et divise le document PDF en plusieurs fichiers plus petits.
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
Le code ci-dessus montre comment diviser un gros fichier PDF en petits morceaux à l'aide d'iTextSharp. Chaque document PDF plus petit contiendra une partie du document original.
La fonctionnalité principale est encapsulée dans la méthode SplitPdfUsingiTextSharp.
Dans la méthode SplitPdfUsingiTextSharp :
Un objet PdfReader nommé Reader est créé en chargeant le PDF à partir de l'inputPdfPath spécifié.
Un objet PdfDocument nommé DOC est initialisé à l'aide du Reader.
Une boucle itère de 1 à NumberOfSplitFiles :
Un nouveau fichier PDF plus petit est créé avec un nom de fichier tel que "SplitPDF_iTextSharp_1.pdf"(pour le premier fractionnement) dans le dossier de sortie spécifié.
Dans ce nouveau document PDF(pdfDocument)les pages sont copiées à partir du document original :
de firstPage à lastPage(inclusif) sont copiés.
Le PDF réduit est enregistré.
Assurez-vous que la bibliothèque iTextSharp est correctement installée et référencée dans votre projet. Remplacez "input.pdf" par le chemin d'accès à votre fichier PDF d'entrée.
Pour comparer les deux méthodes de fractionnement utilisant iTextSharp et IronPDF, évaluons-les sur la base de plusieurs facteurs :
Facilité d'utilisation:
**La méthode iTextSharp implique la création d'un PdfReader, d'un PdfDocument et d'un PdfWriter. Il calcule les intervalles de pages et copie les pages dans un nouveau document. Cette approche nécessite de comprendre l'API iTextSharp.
Lisibilité du code:
iTextSharp: Le code comporte plus d'étapes, ce qui le rend légèrement plus long et potentiellement plus complexe à lire.
Performance:
iTextSharp: Les performances peuvent être affectées par la création et l'élimination répétées des instances de PdfDocument.
Memory Usage:
iTextSharp: La création de plusieurs instances de PdfDocument consommera plus de mémoire.
En conclusion, iTextSharp et IronPDF offrent tous deux des solutions robustes pour diviser les fichiers PDF en C#, chacun avec ses propres avantages. IronPDF se distingue par sa simplicité, sa lisibilité et ses performances potentiellement meilleures grâce à une approche plus directe.
Les développeurs à la recherche d'un équilibre entre polyvalence et facilité d'utilisation peuvent trouver en IronPDF un choix convaincant. En outre, IronPDF offre un service deessai gratuit. En fin de compte, le choix entre iTextSharp et IronPDF dépend des exigences de chaque projet et du style de développement privilégié.
9 produits de l'API .NET pour vos documents de bureau