Génération de PDF en C# (.NET) : revue des bibliothèques et exemples pratiques
La génération de documents PDF est l'une des tâches les plus courantes dans le développement d'entreprise en C#. Rapports, factures, bons de livraison, contrats — tout cela peut être facilement généré par programmation. Dans l'écosystème .NET, il existe plusieurs bibliothèques matures, chacune avec ses propres points forts. Dans cet article, nous allons examiner quatre outils principaux, montrer des exemples de code et vous aider à choisir celui qui convient à votre projet.
1. iTextSharp / iText 7 for .NET
iText est sans doute la bibliothèque la plus connue pour travailler avec les PDF. La version iTextSharp était un port de la bibliothèque Java pour .NET Framework. Actuellement, la version recommandée est iText 7 for .NET (licence AGPL pour les projets open-source ou licence commerciale).
Fonctionnalités :
- Création de PDF à partir de zéro
- Travail avec des modèles (PdfTemplate)
- Ajout d'images, de tableaux, de listes
- Prise en charge d'Unicode, du cyrillique
- Signature numérique, chiffrement
Exemple : document simple avec un tableau
using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;
public void CreateSimplePdf(string filePath){ using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document doc = new Document(pdf)) { doc.Add(new Paragraph("Bonjour le monde !")); Table table = new Table(3); table.AddCell("Nom"); table.AddCell("Âge"); table.AddCell("Ville"); table.AddCell("Anna"); table.AddCell("28"); table.AddCell("Paris"); doc.Add(table); }}2. PDFsharp / MigraDoc
PDFsharp est une bibliothèque légère open-source (MIT). Associée à MigraDoc, elle permet de décrire des documents dans le style d'un "traitement de texte" : paragraphes, styles, en-têtes et pieds de page. Idéale pour générer des rapports simples sans graphismes complexes.
Avantages :
- Faible courbe d'apprentissage
- Bonne prise en charge du cyrillique
- Ne nécessite pas de licence
- Fonctionne avec .NET Framework et .NET Core
Exemple : création d'un document via MigraDoc
using MigraDoc.DocumentObjectModel;using MigraDoc.Rendering;
public void CreateWithMigraDoc(string filePath){ Document doc = new Document(); Section section = doc.AddSection(); Paragraph para = section.AddParagraph("Titre du rapport"); para.Format.Font.Size = 18; para.Format.Font.Bold = true; section.AddParagraph("Ceci est le texte du rapport. Généré avec PDFsharp et MigraDoc."); PdfDocumentRenderer renderer = new PdfDocumentRenderer(true); renderer.Document = doc; renderer.RenderDocument(); renderer.PdfDocument.Save(filePath);}3. QuestPDF
QuestPDF est une bibliothèque moderne avec une interface fluide (syntaxe similaire à LINQ). Distribuée sous licence MIT (gratuite pour un usage commercial). Activement développée, elle prend en charge .NET 6/7/8.
Fonctionnalités clés :
- Construction déclarative de la mise en page
- Sauts de page automatiques
- Prise en charge des images, SVG, codes QR
- Haute performance
Exemple : génération d'une facture
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(2, Unit.Centimetre); page.DefaultTextStyle(x => x.FontSize(12)); page.Header().Element(ComposeHeader); page.Content().Element(ComposeContent); page.Footer().AlignCenter().Text(x => { Aussi dans la bibliothèque
Surveillance des applications Java : outils et bonnes pratiques
Playwright JavaScript (Node.js) : guide complet avec exemples
Swinject Swift : guide complet avec exemples pratiques
Validation des données en PHP avec la bibliothèque Respect\\Validation