Génération de PDF en C# (.NET) : meilleures bibliothèques et exemples de code

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 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 => {

Recommendations