Génération de rapports PDF en C# (.NET) avec iTextSharp et QuestPDF

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Génération de rapports PDF en C# (.NET) : aperçu des bibliothèques et exemples



Dans le développement moderne sur la plateforme .NET, la création de documents PDF est une tâche courante. Qu'il s'agisse de générer des factures, des rapports, des bordereaux ou des tableaux de bord analytiques, C# offre des outils puissants pour travailler avec les PDF. Dans cet article, nous analyserons trois bibliothèques populaires : iTextSharp, QuestPDF et PdfSharp. Vous apprendrez laquelle choisir pour une tâche spécifique et verrez des exemples de code fonctionnels.



1. iTextSharp (iText 7 pour .NET)



iTextSharp est le port de la célèbre bibliothèque Java iText pour .NET. C'est la solution la plus mature et la plus fonctionnelle, prenant en charge les mises en page complexes, les tableaux, les images, les annotations et les signatures numériques. Cependant, une utilisation commerciale nécessite l'achat d'une licence (AGPL pour l'open-source).



Installation

dotnet add package itext7


Exemple : rapport simple avec tableau

using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;

public void CreatePdfReport(){ string filePath = "report.pdf"; using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document document = new Document(pdf)) { document.Add(new Paragraph("Rapport des ventes de mars") .SetBold().SetFontSize(18));

Table table = new Table(3); table.AddCell("Produit"); table.AddCell("Quantité"); table.AddCell("Prix"); table.AddCell("Ordinateur portable"); table.AddCell("12"); table.AddCell("75 000 ₽"); table.AddCell("Moniteur"); table.AddCell("5"); table.AddCell("32 000 ₽");

document.Add(table); }}


Avantages : flexibilité maximale, prise en charge des structures complexes, signatures numériques.
Inconvénients : API complexe pour les débutants, licence pour usage commercial.



2. QuestPDF



QuestPDF est une bibliothèque moderne avec une interface fluide et un moteur de rendu intégré. Elle permet de décrire un document de manière déclarative, similaire au HTML/CSS. Idéale pour la génération de rapports types avec des éléments répétitifs.



Installation

dotnet add package QuestPDF


Exemple : facture avec en-tête et tableau

using QuestPDF.Fluent;using QuestPDF.Helpers;using QuestPDF.Infrastructure;

public byte[] GenerateInvoice(){ return Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(20); page.Header().Text("Facture n° 12345") .SemiBold().FontSize(20).FontColor(Colors.Blue.Darken2);

page.Content().Table(table => { table.ColumnsDefinition(columns => { columns.RelativeColumn(); columns.RelativeColumn(); columns.RelativeColumn(); });

table.Header(header => { header.Cell().Background(Colors.Grey.Lighten3).Text("Service"); header.Cell().Background(Colors.Grey.Lighten3).Text("Coût"); header.Cell().Background(Colors.Grey.Lighten3).Text("Quantité"); });

table.Cell().Text("Consultation"); table.Cell().Text("5 000 ₽"); table.Cell().Text("2");

table.Cell().Text("Développement"); table.Cell().Text("15 000 ₽"); table.Cell().Text("1"); });

page.Footer().AlignCenter().Text("Merci pour votre collaboration !"); }); }).GeneratePdf();}


Avantages : code simple et lisible, excellente performance, gratuit pour un usage commercial

Recommendations