COMPARAISON DES PRODUITS

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C#

Publié avril 3, 2024
Partager:

Introduction

"Portable Document Format", ou PDF, est un format de fichier créé par Adobe. Les PDF sont très utiles pour présenter des documents dont le texte et les photos doivent être mis en forme. Dans le monde actuel, les fichiers PDF sont essentiels et sont utilisés pour la création de documents et la facturation dans tous les secteurs d'activité. Grâce aux nombreuses bibliothèques PDF disponibles sur le marché, la création de PDF est devenue pratiquement instinctive. Pour choisir la bibliothèque PDF qui vous convient, il est essentiel de peser les avantages et les caractéristiques de chacune d'entre elles avant d'en utiliser une pour votre projet.

Dans cet article, nous allons voir comment ajouter des numéros de page dans un PDF en utilisant iTextSharp C#. Nous allons également comparer les iTextSharp avecIronPDF.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp C&num ;

  1. Créez un nouveau projet C# à l'aide de n'importe quel IDE.

  2. Créer un nouvel objet PDF.

  3. Ajouter les numéros de page au pied de page HTML.

  4. Créer un PDF à partir d'un document HTML.

  5. Enregistrez un fichier PDF sur votre ordinateur.

Qu'est-ce qu'IronPDF ?

IronPDF est un Framework .NET PDF robuste que les développeurs utilisent pour produire, visualiser et éditer des PDF en toute simplicité. IronPDF est un outil sophistiqué qui fonctionne sur un moteur chrome en interne. Il peut convertir des fichiers HTML5, JavaScript, CSS et des images en PDF, ajouter des en-têtes et des pieds de page personnalisés et produire des PDF exactement tels qu'ils apparaissent dans un navigateur. IronPDF prend en charge de nombreux formats en ligne et NET, notamment HTML, ASPX, Razor View et MVC.

Caractéristiques d'IronPDF

  • utilisant le code .NET C# pour créer, lire et éditer simplement des fichiers PDF.
  • Le processus de création de PDF à partir d'un lien URL de site web tout en gérant les User-Agents, les Proxies, les Cookies, les en-têtes HTTP et les variables de formulaire pour permettre la connexion à l'aide de formulaires de connexion HTML.
  • le processus de suppression des images dans les fichiers PDF existants.
  • Incluant les éléments d'un PDF : tableau, texte, photos, signets, filigranes, en-têtes, pieds de page, et autres.
  • la possibilité de séparer et de combiner les pages de nombreux documents PDF en toute simplicité.

    Pour en savoir plus sur la documentation d'IronPDF, reportez-vous à l'adresse suivanteici.

Installation d'IronPDF

Dans les outils Visual Studio, sélectionnez le gestionnaire de paquets NuGet, et vous trouverez l'interface Visual Command-Line sous Outils. La commande ci-dessous doit être saisie dans l'onglet du terminal de gestion des paquets.

Install-Package IronPdf

Nous pouvons également utiliser la méthode du gestionnaire de paquets. L'option NuGet Package Manager de Visual Studio permet d'installer le paquet directement dans la solution. Un champ de recherche est disponible pour localiser les paquets sur le site web de NuGet. Il nous suffit de rechercher "IronPDF" dans le gestionnaire de paquets, comme l'illustre la capture d'écran ci-dessous :

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 1 - Installation d'IronPDF à partir du gestionnaire de paquets

La liste des résultats de recherche pertinents est affichée dans l'image ci-dessus. Pour que le paquet soit installé sur votre système, veuillez faire les sélections nécessaires.

Maintenant que le paquet a été téléchargé et installé, il peut être utilisé dans le projet en cours.

Qu'est-ce que iTextSharp ?

iTextSharp est une bibliothèque flexible permettant de produire et de modifier des documents PDF en C#. Il offre plusieurs fonctionnalités, telles que le cryptage, la fusion de PDF, l'extraction de texte et d'images, et bien plus encore. iTextSharp est un outil efficace pour de nombreuses tâches, y compris l'ajout de numéros de page aux PDF.

caractéristiques d'iTextSharp

  • Une API permettant de générer des documents PDF est disponible via la bibliothèque iText.
  • Les chaînes HTML et XML peuvent être analysées en fichiers PDF à l'aide du programme iText.
  • Nous pouvons ajouter des signets, des numéros de page et des repères à nos documents PDF en utilisant la bibliothèque iText.
  • Nous pouvons également diviser un document PDF en plusieurs PDF ou fusionner plusieurs documents PDF en un seul PDF à l'aide de la bibliothèque iText.
  • Nous pouvons modifier les formulaires PDF avec iText.

Installer iTextSharp

Utilisez le gestionnaire de paquets NuGet pour rechercher iText. iText7 et iText.pdfhtml sont des installations nécessaires car les fonctionnalités d'iText sont réparties dans plusieurs paquets.

Si vous choisissez l'interface Visual Command-Line, les paquets suivants doivent être installés :

Install-Package iTextSharp

IText 7 étant la version la plus récente, c'est celle que nous utilisons dans notre solution.

Ajout de numéros de page avec IronPDF

L'ajout de numéros de page aux fichiers PDF est simplifié grâce à la bibliothèque complète d'IronPDF. Pour l'illustrer, voir le code ci-dessous.

using IronPdf;
static void main(string [] args)
{ 
    var renderer = new IronPdf.HtmlToPdf();
    private string header = "<h1>Hello Ironpdf!<h1>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
    HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
    {
        HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
    };
    // Add footer
    pdf.AddHtmlFooters(htmlFooter);
    pdf.SaveAs("output.pdf");
}
using IronPdf;
static void main(string [] args)
{ 
    var renderer = new IronPdf.HtmlToPdf();
    private string header = "<h1>Hello Ironpdf!<h1>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
    HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
    {
        HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
    };
    // Add footer
    pdf.AddHtmlFooters(htmlFooter);
    pdf.SaveAs("output.pdf");
}
Imports IronPdf
Shared Sub main(ByVal args() As String)
	Dim renderer = New IronPdf.HtmlToPdf()
	private String header = "<h1>Hello Ironpdf!<h1>"
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
	Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}
	' Add footer
	pdf.AddHtmlFooters(htmlFooter)
	pdf.SaveAs("output.pdf")
End Sub
VB   C#

Tout d'abord, nous définissons le texte HTML qui doit être transformé en PDF. Ce contenu HTML peut consister en un seul paragraphe HTML ou en une page HTML entière. Ensuite, nous créons une instance de la classe HTMLToPdf, qui offre la fonction de conversion HTML-PDF RenderHtmlAsPdf.

Le contenu HTML est transmis comme argument à la fonction RenderHtmlAsPdf. Nous spécifions le matériel HTML qui doit être transformé en PDF. Les numéros de page sont représentés par des espaces réservés, ou par le symbole **_{page} de{nombre total de pages}dans la partie du pied de page de ce texte HTML.

Le document PDF créé est renvoyé par cette méthode sous la forme d'un objet PdfDocument. En utilisant la méthode SaveAs, nous enregistrons le document PDF dans un fichier nommé "output.pdf". Nous pouvons également utiliser la fonction OpenInDefaultPDFViewer pour ouvrir le document PDF créé avec le lecteur PDF par défaut du système. Nous pouvons également utiliser la méthode ci-dessus pour ajouter des numéros de page à un fichier PDF existant.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 2 - IronPDF : PDF produit avec des numéros de page

Pour en savoir plus sur le code IronPDF, consultez le site suivantici.

Ajouter des numéros de page avec iTextSharp

Tout d'abord, utilisons iTextSharp pour générer un nouveau document PDF. Voici une illustration de base de la création d'un nouveau document PDF avec un numéro de page :

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            // Create a new PDF document
            Document doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
            doc.Open();
            doc.Add(new Paragraph("Hello, world!"));
            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();
            // Close the document
            doc.Close();
        }
    }
    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnOpenDocument(PdfWriter writer, Document document)
        {
            base.OnOpenDocument(writer, document);
        }
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;
            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);
            table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
        }
        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            // Create a new PDF document
            Document doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
            doc.Open();
            doc.Add(new Paragraph("Hello, world!"));
            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();
            // Close the document
            doc.Close();
        }
    }
    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnOpenDocument(PdfWriter writer, Document document)
        {
            base.OnOpenDocument(writer, document);
        }
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;
            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);
            table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
        }
        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a new PDF document
			Dim doc As New Document()
			Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))
			doc.Open()
			doc.Add(New Paragraph("Hello, world!"))
			' Attach page number event to PDF writer
			writer.PageEvent = New PageNumberEventHandler()
			' Close the document
			doc.Close()
		End Sub
	End Class
	Public Class PageNumberEventHandler
		Inherits PdfPageEventHelper

		Public Overrides Sub OnOpenDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnOpenDocument(writer, document)
		End Sub
		Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnEndPage(writer, document)
			Dim table As New PdfPTable(1)
			table.TotalWidth = 300F
			table.HorizontalAlignment = Element.ALIGN_CENTER
			Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
			cell.Border = 0
			table.AddCell(cell)
			table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent)
		End Sub
		Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnCloseDocument(writer, document)
		End Sub
	End Class
End Namespace
VB   C#

Tout d'abord, nous créons un nouvel objet pour Document et PdfWriter qui nous permet de créer un fichier PDF vide. Vous pouvez inclure du texte, des photos, des tableaux et d'autres types de matériel dans votre document PDF. Utilisons le nouveau paragraphe pour ajouter un exemple de texte à des fins de démonstration. L'étape importante consiste maintenant à ajouter des numéros de page au document PDF. Pour ce faire, nous utiliserons les événements de page d'iTextSharp. Pour pouvoir remplacer les méthodes qui sont appelées lorsque des événements spécifiques se produisent au cours du processus de génération du PDF, construisons d'abord une classe qui hérite de la classe PdfPageEventHelper.

La fonction OnEndPage est surchargée dans cette classe pour ajouter un tableau dont une seule cellule contient le numéro de la page en cours. Enfin, avant de fermer le document, nous devons connecter une instance de notre classe PageNumberEventHandler à l'objet PdfWriter. Avec cette configuration, la fonction PageNumberEventHandler de la classe OnEndPage sera appelée à chaque fois qu'une nouvelle page est ajoutée au document PDF, en ajoutant le numéro de page au bas de chaque page. Nous pouvons également utiliser un document PDF existant pour ajouter des numéros de page.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 3 - iTextSharp : PDF produit avec numéros de page

Conclusion

En résumé,IronPDFla spécialisation de iTextSharp, sa facilité d'utilisation et son intégration transparente dans les environnements .NET en font la meilleure option pour les scénarios nécessitant la conversion de HTML en PDF et les fonctionnalités connexes, même si iTextSharp reste un concurrent de taille dans le paysage des bibliothèques de manipulation de PDF en C#. Avec IronPDF, vous pouvez créer des factures, des rapports et des documents produits dynamiquement à partir de contenu HTML avec la facilité, l'efficacité et l'adaptabilité requises pour réussir dans l'environnement de développement moderne.

Une licence permanente, des options de mise à niveau et un an de maintenance du logiciel sont inclus dans l'édition Lite d'IronPDF ($749). La période d'essai en filigrane permet aux utilisateurs d'évaluer le produit dans un contexte pratique. Visiter la licencepage. Aller à cette pagesite web pour en savoir plus sur Iron Software.

< PRÉCÉDENT
Outils de reporting C# (comparaison des fonctionnalités)
SUIVANT >
Comment lire des documents PDF en C# en utilisant iTextSharp :