Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

Une Comparaison de la Séparation de PDF en C# Entre iTextSharp et IronPDF

Les fichiers PDF (Portable Document Format) sont largement utilisés pour le partage et la présentation de documents, et il y a des moments où vous pouvez avoir 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, diviser les PDF peut être une tâche précieuse dans diverses situations.

Dans cet article, nous allons apprendre comment diviser des PDF en utilisant C#. C# est un langage polyvalent et puissant, et il existe plusieurs bibliothèques disponibles qui rendent relativement simple la manipulation des PDF. Nous explorerons les deux bibliothèques suivantes pour diviser les PDF en C#.

  1. iTextSharp
  2. IronPDF

Comment Diviser un PDF en C# en Utilisant iTextSharp

  1. Tout d'abord, installez la bibliothèque iText7.
  2. Créez un PdfReader à partir du fichier PDF d'entrée.
  3. Utilisez un PdfDocument pour travailler avec le contenu du PDF.
  4. Calculez le nombre de pages pour chaque fichier divisé.
  5. Définissez les valeurs de plage de pages initiales.
  6. Utilisez une boucle pour traiter chaque fichier divisé.
  7. Créez un nouveau PdfDocument pour le fichier divisé actuel.
  8. Copiez les pages du document original vers le nouveau.
  9. Mettez à jour les valeurs de plage de pages pour la prochaine itération.
  10. Enregistrez le PDF de sortie complété.
  11. Répétez jusqu'à ce que tous les fichiers soient créés.
  12. Continuez le processus pour le nombre spécifié de fichiers divisés.

IronPDF

Une Comparaison de la Division des PDF en C# Entre iTextSharp et IronPDF : Figure 1 - Page web de IronPDF

IronPDF est une bibliothèque C# puissante conçue pour travailler avec des fichiers PDF. It provides features for creating, modifying, and extracting content from PDF documents. Les développeurs peuvent générer des PDF à partir de zéro, modifier des PDF existants, et fusionner ou diviser des PDF. De plus, IronPDF excelle dans la conversion de contenu HTML en format PDF, ce qui le rend utile pour générer des rapports ou de la documentation. Avec le support des signatures numériques, des fonctionnalités de sécurité et une sortie de haute qualité, IronPDF simplifie les tâches liées aux PDF dans les applications .NET.

iTextSharp

Une Comparaison de la Division des PDF en C# Entre iTextSharp et IronPDF : Figure 2 - Page web de iTextSharp

iTextSharp (iText 7) est une bibliothèque largement utilisée pour travailler avec des fichiers PDF dans le cadre .NET. Elle offre des fonctionnalités puissantes pour créer, modifier et extraire du 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 à des PDF. De plus, elle prend en charge l'assemblage de documents, les signatures numériques et la conformité aux normes d'archivage et d'accessibilité. À l'origine, une bibliothèque Java, iTextSharp a été portée sur .NET et dispose d'une communauté active de développeurs et d'utilisateurs.

Installation de la Bibliothèque IronPDF

Pour installer le package NuGet IronPDF en utilisant la console du gestionnaire de packages dans Visual Studio, suivez ces étapes :

  1. Dans Visual Studio, allez dans Outils -> Gestionnaire de packages NuGet -> Console du gestionnaire de packages.
  2. Utilisez la commande suivante pour installer le package NuGet IronPDF :

    Install-Package IronPdf

Cela téléchargera et installera le package 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.

Alternativement, vous pouvez installer IronPDF en utilisant le gestionnaire de packages NuGet dans Visual Studio, ou ajouter directement le package à votre fichier de projet. Une autre option consiste à télécharger le package depuis le site officiel et à l'ajouter manuellement à votre projet. Chaque méthode offre un moyen simple d'intégrer IronPDF dans votre projet C# pour des fonctionnalités liées aux PDF.

Installation de la Bibliothèque iTextSharp

Pour installer iTextSharp en utilisant la console du gestionnaire de packages dans Visual Studio, vous pouvez suivre ces étapes :

  1. Dans Visual Studio, allez dans Outils -> Gestionnaire de packages NuGet -> Console du gestionnaire de packages.
  2. Utilisez la commande suivante pour installer le package NuGet iTextSharp :

    Install-Package itext7
    Install-Package itext7
    SHELL

Cela téléchargera et installera le package 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 en utilisant IronPDF. Cela offre un moyen simple d'y parvenir. Le code suivant prendra le fichier PDF source en entrée et le divisera en plusieurs fichiers PDF.

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;
        }
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim file As String = "input.pdf"
		' The folder to save the split PDFs
		Dim outputFolder As String = "output_split"
		Dim numberOfSplitFiles As Integer = 3 ' Specify how many parts you want to split the PDF into
		' Call the SplitPdf method to split the PDF
		SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles)
	End Sub

	Private Shared Sub SplitPdfUsingIronPDF(ByVal inputPdfPath As String, ByVal outputFolder As String, ByVal numberOfSplitFiles As Integer)
		' Load the input PDF
		Dim sourceFile As PdfDocument = PdfDocument.FromFile(inputPdfPath)

		' Initialize page range values
		Dim firstPage As Integer = 1
		Dim lastPage As Integer = 2
'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 = sourceFile.PageCount / numberOfSplitFiles

		For i As Integer = 1 To numberOfSplitFiles
			' Copy multiple pages into a new document
			Dim newSplitPDF As PdfDocument = sourceFile.CopyPages(firstPage, lastPage)

			' Generate the output file path
			Dim name As String = $"{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
		Next i
	End Sub
End Class
$vbLabelText   $csharpLabel

Explication du code

L'objectif de ce code est de diviser un fichier PDF donné en plusieurs fichiers PDF plus petits en utilisant la bibliothèque IronPDF. La méthode SplitPdfUsingIronPDF est définie pour réaliser cette fonctionnalité.

Paramètres de Méthode

  1. inputPdfPath : Une chaîne représentant le chemin d'accès au fichier PDF d'entrée (par exemple, "input.pdf").
  2. outputFolder : Une chaîne représentant le dossier de sortie où les fichiers PDF divisés seront enregistrés (par exemple, "output_split").
  3. numberOfSplitFiles : Un entier indiquant combien de fichiers PDF plus petits le PDF original sera divisé.

Processus de Division

À l'intérieur de la méthode SplitPdfUsingIronPDF :

  1. Un objet PdfDocument nommé sourceFile est créé en chargeant le PDF depuis le inputPdfPath spécifié.
  2. Deux variables entières, firstPage et lastPage, sont initialisées. Celles-ci représentent la plage de pages pour la division.
  3. totalPageInOneFile est calculé en divisant le nombre total de pages du PDF source par le numberOfSplitFiles spécifié.
  4. Une boucle itère de 1 à numberOfSplitFiles :
  5. Un nouvel objet PdfDocument nommé newSplitPDF est créé.
  6. Les pages de firstPage à lastPage (inclus) sont copiées du sourceFile vers newSplitPDF.
  7. Le fichier PDF plus petit résultant est enregistré avec un nom de fichier comme "SplitPDF_IronPDF_1.pdf" (pour le premier split) dans le dossier de sortie spécifié.
  8. Les valeurs firstPage et lastPage sont mises à jour pour la prochaine itération.

Remarque

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 :

Une Comparaison de la Division des PDF en C# Entre iTextSharp et IronPDF : Figure 3 - Fichiers de sortie créés

Diviser des PDF en C# en Utilisant iTextSharp

Maintenant, nous allons utiliser iTextSharp pour diviser notre document PDF en plusieurs fichiers PDF. Le code suivant prendra le fichier source en entrée et divisera ce document PDF en plusieurs fichiers plus petits.

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;
                }
            }
        }
    }
}
Imports System
Imports iText.Kernel.Pdf

Friend Class Program
	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 ' Specify how many parts you want to split the PDF into
		' Call the SplitPdf method to split the PDF
		SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles)
	End Sub

	Private 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)
				' Calculate the number of pages for each split file
'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

				For i As Integer = 1 To numberOfSplitFiles
					' Generate the output file path
					Dim filename As String = $"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf"

					' Create a new document and attach a writer for the specified output file
					Using pdfDocument As New PdfDocument(New PdfWriter(filename))
						' Copy pages from the original document to the new document
						doc.CopyPagesTo(firstPage, lastPage, pdfDocument)
					End Using

					' Update page range values for the next iteration
					firstPage = lastPage + 1
					lastPage += totalPageInOneFile
				Next i
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Explication du Code

Ce code montre comment diviser un fichier PDF volumineux en morceaux plus petits en utilisant iTextSharp. Chaque document PDF plus petit contiendra une partie du document original.

Division du PDF en Utilisant iTextSharp

  1. La fonctionnalité principale est encapsulée dans la méthode SplitPdfUsingiTextSharp.
  2. La méthode ci-dessus prend trois paramètres : inputPdfPath, outputFolder, et numberOfSplitFiles.

Utilisation de PdfReader et PdfDocument

À l'intérieur de la méthode SplitPdfUsingiTextSharp :

  1. Un objet PdfReader nommé reader est créé en chargeant le PDF depuis le inputPdfPath spécifié.
  2. Un objet PdfDocument nommé doc est initialisé en utilisant le reader.
  3. Le nombre total de pages dans le PDF source est divisé par numberOfSplitFiles pour déterminer combien de pages chaque PDF plus petit doit contenir.

Processus de Division

Une boucle itère de 1 à numberOfSplitFiles :

  1. Un nouveau fichier PDF plus petit est créé avec un nom de fichier comme "SplitPDF_iTextSharp_1.pdf" (pour le premier split) dans le dossier de sortie spécifié.
  2. À l'intérieur de ce nouveau document PDF (pdfDocument), les pages sont copiées du document original doc :
  3. firstPage à lastPage (inclus) sont copiées.
  4. Le PDF plus petit est enregistré.
  5. Les valeurs firstPage et lastPage sont mises à jour pour la prochaine itération.

Remarque

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 réel de votre fichier PDF d'entrée.

Une Comparaison de la Division des PDF en C# Entre iTextSharp et IronPDF : Figure 4 - Fichiers de sortie créés

Comparaison

Pour comparer les deux méthodes de division en utilisant iTextSharp et IronPDF, évaluons-les en fonction de plusieurs facteurs :

  1. Facilité d'utilisation :
    • iTextSharp : La méthode iTextSharp implique la création d'un PdfReader, PdfDocument, et PdfWriter. Elle calcule les plages de pages et copie les pages vers un nouveau document. Cette approche nécessite de comprendre l'API iTextSharp.
    • IronPDF : La méthode IronPDF implique de créer un PdfDocument à partir du fichier source, de copier les pages, et de les enregistrer dans un nouveau fichier. Elle a une API plus simple.
  2. Lisibilité du code :
    • iTextSharp : Le code implique 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 de moins d'étapes et d'appels de méthodes.
  3. Performance :
    • iTextSharp : La performance peut être affectée par la création et l'élimination répétées des instances de PdfDocument.
    • IronPDF : La méthode implique moins d'étapes et offre une meilleure performance grâce à une copie de pages efficace.
  4. Utilisation de la mémoire :
    • iTextSharp : La création de plusieurs instances de PdfDocument consommera plus de mémoire.
    • IronPDF : La méthode est plus économe en mémoire grâce à son approche simplifiée.

Conclusion

En conclusion, iTextSharp et IronPDF offrent tous deux des solutions robustes pour diviser des fichiers PDF en C#, chacun avec son propre ensemble d'avantages. IronPDF se distingue par sa simplicité, sa lisibilité, et potentiellement une meilleure performance grâce à une approche plus directe.

Les développeurs cherchant un équilibre entre la polyvalence et la facilité d'utilisation peuvent trouver IronPDF un choix convaincant. De plus, IronPDF offre un essai gratuit. En fin de compte, la sélection entre iTextSharp et IronPDF dépend des exigences individuelles du projet et du style de développement préféré.

Veuillez noteriTextSharp est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé ou sponsorisé par iTextSharp. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à des fins d'information uniquement et reflètent les informations disponibles publiquement au moment de la rédaction.

Questions Fréquemment Posées

Comment puis-je découper un PDF en C# tout en conservant la mise en forme d'origine ?

Vous pouvez utiliser IronPDF pour découper un PDF en C# tout en préservant sa mise en forme. IronPDF fournit une API simple qui vous permet de charger un PDF et de spécifier les plages de pages à découper, assurant la conservation de la mise en forme originale dans les PDF résultants.

Quels sont les principales différences entre iTextSharp et IronPDF pour la découpe de PDF en C# ?

Les principales différences résident dans la facilité d'utilisation et les performances. IronPDF offre une API plus simple avec moins d'étapes, facilitant la découpe de PDFs sans perdre la mise en forme. En revanche, iTextSharp nécessite la création de multiples instances comme PdfReader, PdfDocument, et PdfWriter, ce qui peut être plus complexe.

Puis-je extraire des pages spécifiques d'un PDF en utilisant C# ?

Oui, en utilisant IronPDF, vous pouvez facilement extraire des pages spécifiques d'un PDF en C#. En chargeant le PDF et en spécifiant les numéros de pages souhaités, IronPDF vous permet d'extraire et de sauvegarder ces pages en tant que nouveau document PDF.

Comment IronPDF améliore-t-il la lisibilité du code comparé à d'autres bibliothèques PDF ?

IronPDF améliore la lisibilité du code en offrant une API claire et concise, réduisant le besoin de multiples classes et objets. Cela simplifie le code nécessaire pour les tâches de manipulation de PDF telles que la découpe, conduisant à un code plus propre et plus facile à maintenir.

Est-il possible de tester la fonctionnalité de découpe de PDF en C# avant d'acheter une bibliothèque ?

Oui, IronPDF offre un essai gratuit qui permet aux développeurs de tester sa fonctionnalité de découpe de PDF et d'autres fonctionnalités. Cette période d'essai vous permet d'évaluer ses capacités et ses performances avant de prendre une décision d'achat.

Quels facteurs doivent être pris en compte lors du choix d'une bibliothèque PDF pour découper des documents ?

Lors de la sélection d'une bibliothèque PDF, considérez des facteurs tels que la facilité d'utilisation, la simplicité de l'API, les performances et la capacité à maintenir la mise en forme originale du document. IronPDF est souvent préféré pour son API conviviale et ses performances efficientes.

Comment puis-je installer IronPDF dans un projet C# de Visual Studio ?

Pour installer IronPDF dans un projet C# de Visual Studio, utilisez la Console du Gestionnaire de Paquets NuGet avec la commande Install-Package IronPdf. Vous pouvez également l'ajouter via l'interface du Gestionnaire de Paquets NuGet ou le télécharger à partir du site officiel de IronPDF.

Est-ce que la découpe d'un PDF peut affecter sa qualité ou sa mise en forme ?

La découpe d'un PDF avec IronPDF garantit que la qualité et la mise en forme du document original sont préservées. Le traitement efficace d'IronPDF maintient l'intégrité du contenu original.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite