using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Comparaison entre iTextSharp et IronPDF pour la division de PDF en C#
Kannapat Udonpant
mars 6, 2024
Partager:
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#.
Comment diviser un PDF en C# ; en utilisant ITextSharp
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 :
Poursuivre le processus pour le nombre spécifié de fichiers fractionnés.
IronPDF
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
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.
Installation de la bibliothèque IronPDF
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.
Utilisez la commande suivante pour installer le paquet NuGet IronPDF :
: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.
Installation de la bibliothèque iTextSharp
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.
Utilisez la commande suivante pour installer le paquetage NuGet iTextSharp :
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.
Diviser des documents PDF en C# ; en utilisant IronPDF
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; } }
Explication du code
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é.
Paramètres de la méthode
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").
NumberOfSplitFiles : Un nombre entier indiquant le nombre de fichiers PDF plus petits dans lesquels le PDF original sera divisé.
Processus de fractionnement
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é.
Les valeurs firstPage et lastPage sont mises à jour pour l'itération suivante.
Note
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 :
Diviser des PDF en C# ; Utiliser iTextSharp
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
Explication du code
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.
Fractionner un PDF à l'aide d'iTextSharp
La fonctionnalité principale est encapsulée dans la méthode SplitPdfUsingiTextSharp.
La méthode ci-dessus prend trois paramètres : inputPdfPath, outputFolder et NumberOfSplitFiles.
Utilisation de PdfReader et PdfDocument
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.
Le nombre total de pages du PDF source est divisé par NumberOfSplitFiles pour déterminer le nombre de pages que chaque PDF plus petit doit contenir.
Processus de fractionnement
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é.
Les valeurs firstPage et lastPage sont mises à jour pour l'itération suivante.
Note
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.
Comparaison
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.
IronPDF: La méthode IronPDF consiste à créer un document Pdf à partir du fichier source, à copier les pages et à les enregistrer dans un nouveau fichier. Son API est plus simple.
Lisibilité du code:
iTextSharp: Le code comporte plus d'étapes, ce qui le rend légèrement plus long et potentiellement plus complexe à lire.
IronPDF: Le code est concis et plus lisible en raison du nombre réduit d'étapes et d'appels de méthodes.
Performance:
iTextSharp: Les performances peuvent être affectées par la création et l'élimination répétées des instances de PdfDocument.
IronPDF: La méthode comporte moins d'étapes et offre de meilleures performances grâce à une copie efficace des pages.
Memory Usage:
iTextSharp: La création de plusieurs instances de PdfDocument consommera plus de mémoire.
IronPDF: La méthode est plus efficace en termes de mémoire grâce à son approche simplifiée.
Conclusion
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é.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT PDFsharp vs iTextSharp (Comparaison des bibliothèques PDF C#)
SUIVANT > Comparaison entre IronPDF et PDFSharpCore
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier