Passer au contenu du pied de page
UTILISATION DE IRONPDF

Tutoriel C# PDFWriter : Créer des documents PDF en .NET

IronPDF simplifie le processus de création de PDF en C# en convertissant le HTML en PDF, permettant ainsi aux développeurs de générer des PDF professionnels avec un minimum de code, en évitant le positionnement manuel ou les lignes de code répétitives excessives.

Créer des documents PDF par programmation en C# était autrefois un défi. La plupart des solutions C# PDFWriter impliquent des API complexes et un code répétitif important pour produire un simple fichier PDF . Si vous avez déjà essayé d'anciennes bibliothèques open source, vous savez à quel point les fuites de mémoire et les problèmes de performance peuvent être frustrants.

IronPDF change tout cela. En quelques lignes de code seulement, vous pouvez créer des documents PDF, ajouter de nouvelles pages, des paragraphes, des images, des en-têtes et des numéros de page, et les enregistrer sans vous soucier des détails techniques. La bibliothèque prend en charge les opérations asynchrones pour de meilleures performances et le multithreading pour le traitement par lots.

Dans cet article, nous vous montrerons comment utiliser l'objet document d'IronPDF, ChromePdfRenderer et les méthodes de génération de PDF pour créer des documents PDF professionnels dans .NET Framework ou .NET Core, directement depuis Visual Studio. À la fin de ce cours, vous serez prêt à générer vos propres fichiers PDF, qu'il s'agisse d'un simple test " Hello World " ou d'une facture complète avec des polices personnalisées et des images intégrées .

Qu'est-ce qu'un PDFWriter en C# ?

Un PDFWriter est un objet document qui permet aux développeurs de générer des documents PDF, d'ajouter des paragraphes, des images, des en-têtes et de manipuler des pages par programmation. Les bibliothèques traditionnelles exigent souvent un positionnement manuel, des calculs complexes et une gestion explicite des ressources. Ils peuvent également rencontrer des difficultés avec les langues internationales et la prise en charge de l'UTF-8 .

IronPDF simplifie tout cela. Vous pouvez créer des documents PDF en utilisant du contenu HTML et CSS avec un code simple provenant d'un environnement C# familier comme votre application console typique ou en travaillant avec des classes standard comme MemoryStream . La bibliothèque gère automatiquement le crénage des polices et la gestion des métadonnées .

Certaines bibliothèques, comme iTextSharp, possèdent une classe nommée PdfWriter , mais en C#, le terme PDFWriter désigne généralement tout composant ou bibliothèque qui génère des documents PDF par programmation. Si vous comparez les options, consultez la comparaison entre IronPDF et iText , ou consultez les comparaisons avec Aspose , Syncfusion et QuestPDF pour une analyse détaillée des fonctionnalités.

Passer de la manipulation de bas niveau à la génération de haut niveau augmente la productivité. Avec une nouvelle instance PdfDocument dans Visual Studio ou votre IDE, vous pouvez créer des PDF avec un minimum de code. Le moteur de rendu Chrome garantit un rendu impeccable au pixel près à chaque fois, prenant en charge les types de médias CSS modernes et les mises en page réactives .

Comme indiqué ci-dessous, les bibliothèques PDFWriter traditionnelles comme iTextSharp nécessitent beaucoup de code répétitif, tandis qu'IronPDF produit le même document PDF en quelques lignes seulement — plus rapidement, plus simplement et avec moins d'erreurs. La bibliothèque offre également des options de journalisation personnalisées et une gestion native des exceptions pour faciliter le débogage.

Comment installer IronPDF dans votre projet C# ?

Prendre en main IronPDF prend moins d'une minute. La méthode d'installation la plus simple utilise le gestionnaire de paquets NuGet :

Install-Package IronPdf

Alternativement, dans Visual Studio :

  1. Cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions
  2. Sélectionnez "Gérer les packages NuGet"
  3. Rechercher "IronPDF"
  4. Cliquez sur Installer

Pour des installations détaillées spécifiques à chaque plateforme, consultez le guide d'installation d'IronPDF et la configuration NuGet avancée . Si vous déployez sur Azure ou Azure Functions , AWS ou AWS Lambda , ou si vous devez exécuter IronPDF dans Docker , nous disposons de guides spécifiques pour chaque environnement. Pour les déploiements Linux, notamment les installations Red Hat Enterprise Linux ou macOS sur Intel et Apple Silicon, des dépendances supplémentaires peuvent être nécessaires. Vous pouvez également utiliser Windows Installer pour une installation manuelle.

Comment créer votre premier PDF avec IronPDF?

Contrairement aux implémentations traditionnelles de PDFWriter, IronPDF ne nécessite pas de variable de classe PDFWriter distincte. Les objets renderer et PdfDocument gèrent toutes les tâches d'écriture en interne. Voici un exemple complet de fonctionnement :

using IronPdf;
// Instantiate the PDF renderer
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF!</p>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;
// Instantiate the PDF renderer
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF!</p>");
// Save the PDF
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

Le ChromePdfRenderer gère toute la complexité en interne, assurant un rendu pixel-perfect de votre contenu dans un nouveau document. Vous pouvez également exporter des PDF vers la mémoire si vous devez travailler avec des flux plutôt qu'avec des fichiers, ou charger des PDF depuis la mémoire pour les traiter :

// Save to MemoryStream instead of file
using (var ms = pdf.Stream)
{
    // Use the stream as needed
    byte[] pdfBytes = ms.ToArray();
}
// Save to MemoryStream instead of file
using (var ms = pdf.Stream)
{
    // Use the stream as needed
    byte[] pdfBytes = ms.ToArray();
}
$vbLabelText   $csharpLabel

Vous pouvez également enregistrer les PDF dans différents formats comme PDF/A pour l'archivage , PDF/UA pour l'accessibilité , ou avec une compatibilité de version PDF spécifique :

// Save as PDF/A-3b for long-term archival
pdf.SaveAsPdfA("archived-document.pdf");

// Convert to linearized PDF for fast web viewing
pdf.SaveAsLinearized("web-improve.pdf");
// Save as PDF/A-3b for long-term archival
pdf.SaveAsPdfA("archived-document.pdf");

// Convert to linearized PDF for fast web viewing
pdf.SaveAsLinearized("web-improve.pdf");
$vbLabelText   $csharpLabel

Remarque : Vous pouvez facilement ajouter des images, de nouvelles pages, des en-têtes et des paragraphes en quelques lignes seulement, grâce aux méthodes et aux fonctionnalités de l'objet document d'IronPDF. La bibliothèque prend en charge l'encodage base64 pour les ressources intégrées et les URI de données pour les images intégrées.

Comment convertir des documents HTML en documents PDF ?

La véritable puissance d'IronPDF se manifeste lors de la génération de documents PDF complexes. Qu'il s'agisse de convertir du HTML en PDF à partir de pages web existantes ou de créer des rapports dynamiques, la conversion HTML-PDF conserve une fidélité totale. La bibliothèque prend en charge Bootstrap et Flexbox CSS , les graphiques SVG et le contenu WebGL :

// Convert a URL to PDF
var urlPdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_55___");
urlPdf.SaveAs("website.pdf");
// Convert an HTML file with IronPDF's PDF writer
var filePdf = renderer.RenderHtmlFileAsPdf("example-invoice.html");
filePdf.SaveAs("invoice.pdf");
// Use advanced rendering options for your C# PDF generator
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for dynamic content
// Convert a URL to PDF
var urlPdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_55___");
urlPdf.SaveAs("website.pdf");
// Convert an HTML file with IronPDF's PDF writer
var filePdf = renderer.RenderHtmlFileAsPdf("example-invoice.html");
filePdf.SaveAs("invoice.pdf");
// Use advanced rendering options for your C# PDF generator
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for dynamic content
$vbLabelText   $csharpLabel

Le renderer prend en charge le plein CSS3, l'exécution JavaScript et les mises en page réactives. Cela garantit que vos PDF s'afficheront exactement comme prévu. Pour plus de détails sur les options de rendu , consultez la documentation d'IronPDF . Vous pouvez également convertir avec la même facilité des fichiers HTML , des chaînes de caractères HTML , ou même des fichiers ZIP HTML .

Pour les sites Web nécessitant une authentification, IronPDF prend en charge les connexions TLS aux sites Web et aux systèmes ainsi que l'authentification Kerberos . Vous pouvez ajouter des en-têtes de requête HTTP personnalisés pour l'accès à l'API. Les fonctionnalités de rendu JavaScript garantissent un affichage correct du contenu dynamique, avec des délais de rendu personnalisés et des écouteurs de messages JavaScript pour les scénarios avancés.

À quoi ressemble le fichier HTML généré ?

! Affichage en écran partagé montrant à gauche le code d'un modèle de facture HTML et à droite l'aperçu du PDF généré, illustrant la conversion HTML vers PDF.

Comment générer des documents PDF réalistes avec IronPDF ?

La génération de PDF dans le monde réel en C# implique souvent des données dynamiques. Voici comment créer une facture professionnelle à l'aide de l'API de création de PDF d'IronPDF. Le code ci-dessous illustre la génération de rapports PDF avec des formats de papier personnalisés et une mise en forme avancée :

string invoiceHtml = $@"
    <html>
    <head>
        <style>
            body {{ font-family: Arial; }}
            .header {{ background: #f0f0f0; padding: 20px; }}
            .total {{ font-weight: bold; font-size: 18px; }}
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #{invoiceNumber}</h1>
            <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
        </div>
        <table>
            <tr><td>Product</td><td>Quantity</td><td>Price</td></tr>
            {GenerateLineItems()}
        </table>
        <p class='total'>Total: ${totalAmount:F2}</p>
    </body>
    </html>";
// Use IronPDF's C# PDF writer to create the document
var invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
// Apply digital signature for authenticity
invoicePdf.Sign(new PdfSignature("cert.pfx", "password"));
invoicePdf.SaveAs($"invoice-{invoiceNumber}.pdf");
string invoiceHtml = $@"
    <html>
    <head>
        <style>
            body {{ font-family: Arial; }}
            .header {{ background: #f0f0f0; padding: 20px; }}
            .total {{ font-weight: bold; font-size: 18px; }}
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #{invoiceNumber}</h1>
            <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
        </div>
        <table>
            <tr><td>Product</td><td>Quantity</td><td>Price</td></tr>
            {GenerateLineItems()}
        </table>
        <p class='total'>Total: ${totalAmount:F2}</p>
    </body>
    </html>";
// Use IronPDF's C# PDF writer to create the document
var invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
// Apply digital signature for authenticity
invoicePdf.Sign(new PdfSignature("cert.pfx", "password"));
invoicePdf.SaveAs($"invoice-{invoiceNumber}.pdf");
$vbLabelText   $csharpLabel

Cette approche combine la flexibilité de la modélisation HTML avec la fiabilité de la sortie PDF, ce qui est idéal pour générer des factures, des rapports, des certificats et d'autres documents professionnels. Apprenez-en davantage sur la création de rapports PDF en ASP.NET. Vous pouvez même convertir du CSHTML en PDF dans les applications MVC, utiliser Razor Pages pour la génération de contenu dynamique ou effectuer un rendu CSHTML sans interface graphique pour un traitement côté serveur. Pour les applications Blazor , IronPDF assure une intégration fluide.

À quoi ressemble la facture générée ?

Capture d'écran d'une facture PDF générée affichant la facture n° 12345 avec un exemple de produit et un montant total de 250,75 $.

Quelles fonctionnalités avancées améliorent votre PDFWriter ?

IronPDF va au-delà de la création PDF de base avec des fonctionnalités prêtes pour l'entreprise :

Voici un exemple pratique ajoutant des en-têtes avec numéros de page dans vos documents PDF C# :

// Configure headers for your .NET PDF writer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    MaxHeight = 25
};
// Add page numbers to PDF programmatically
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
// Add watermark for draft documents
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    DrawDividerLine = true,
    LeftText = "CONFIDENTIAL",
    RightText = "{date} {time}"
};
// Configure headers for your .NET PDF writer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    MaxHeight = 25
};
// Add page numbers to PDF programmatically
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
// Add watermark for draft documents
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    DrawDividerLine = true,
    LeftText = "CONFIDENTIAL",
    RightText = "{date} {time}"
};
$vbLabelText   $csharpLabel

Pour un contrôle plus précis de la mise en page du document, vous pouvez définir des marges personnalisées , définir des formats de papier personnalisés ou ajuster l'orientation de la page . La fonction de table des matières génère automatiquement la navigation pour les documents longs. Vous pouvez également transformer des pages PDF , dessiner des lignes et des rectangles , ou ajouter du texte et des images bitmap directement aux PDF existants.

Grâce à cette fonction, vous pouvez générer des fichiers PDF avec des numéros de page dans le pied de page et un en-tête personnalisé. Pour illustrer cela, je vais créer un PDF simple de plusieurs pages à partir d'une chaîne HTML, qui démontre la conversion de HTML en PDF avec des sauts de page et une numérotation de page :

// Generate long HTML content to create multiple pages for demonstration
// Multi-page HTML with explicit page breaks
string multiPageHtml = "";
for (int i = 1; i <= 5; i++) // 5 pages
{
    multiPageHtml += $@"
            <div style='page-break-after: always;'>
                <h1>Section {i}</h1>
                <p>This is section {i} of the report. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                This content will appear on its own page thanks to the CSS page-break.</p>
            </div>";
}
//render HTML string a PDF
var multipagePdf = renderer.RenderHtmlAsPdf(multiPageHtml);
//save PDF
multipagePdf.SaveAs("multiPageReport.pdf");
// Generate long HTML content to create multiple pages for demonstration
// Multi-page HTML with explicit page breaks
string multiPageHtml = "";
for (int i = 1; i <= 5; i++) // 5 pages
{
    multiPageHtml += $@"
            <div style='page-break-after: always;'>
                <h1>Section {i}</h1>
                <p>This is section {i} of the report. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                This content will appear on its own page thanks to the CSS page-break.</p>
            </div>";
}
//render HTML string a PDF
var multipagePdf = renderer.RenderHtmlAsPdf(multiPageHtml);
//save PDF
multipagePdf.SaveAs("multiPageReport.pdf");
$vbLabelText   $csharpLabel

Parmi les autres fonctionnalités, citons la désinfection des PDF pour des raisons de sécurité, l'aplatissement des PDF pour rendre les formulaires non modifiables et la linéarisation pour un affichage Web rapide. Vous pouvez également travailler avec des objets DOM PDF , mettre à l'échelle des objets PDF et traduire des objets PDF pour un contrôle précis.

Pour une personnalisation plus poussée, vous pouvez ajouter du texte et des images , fusionner ou diviser des PDF , ou même extraire du texte et des images de PDF existants. La bibliothèque prend également en charge l'UTF-8 et les langues internationales , ce qui la rend adaptée aux applications mondiales. Pour certains formats, vous pouvez convertir XML en PDF , Markdown en PDF , RTF en PDF ou DOCX en PDF .

Comment les numéros de page apparaissent-ils dans le PDF final ?

! Visionneuse PDF affichant une double page du fichier " MultiPageReport.pdf " avec les en-têtes Section 1 et Section 2 contenant du texte Lorem ipsum, affichée à un zoom de 75 %.

Pourquoi choisir IronPDF pour vos besoins de génération de PDF en C# ?

IronPDF rend la génération de PDF en C# simple et fiable. Vous n'avez pas besoin d'une classe PdfWriter dédiée ; En revanche, le moteur de rendu et l'objet PdfDocument gèrent tout, du contenu HTML à la taille de la page, en passant par les en-têtes et les pieds de page. Que vous créiez des factures, des rapports ou des certificats pour l'intégration à Microsoft Office, IronPDF vous aide à accomplir cette tâche en quelques lignes de code seulement. La bibliothèque prend en charge le traitement parallèle pour les scénarios à volume élevé et les opérations asynchrones pour les applications réactives.

Avec une documentation complète, des options d'assistance performantes incluant un support technique et une version d'essai gratuite , la prise en main est simple. Vous pouvez expérimenter avec de nouveaux documents PDF, ajouter des images ou ajuster la taille des polices et la mise en page sans prise de tête. IronPDF transforme la création de PDF d'une tâche technique en un flux de travail fluide et productif. La bibliothèque propose des démonstrations pour illustrer ses fonctionnalités et des tutoriels pour les scénarios complexes.

La bibliothèque excelle dans les tâches courantes telles que la conversion d'images en PDF, y compris la prise en charge des TIFF multi-images , la gestion du CSS réactif et la prise en charge des polices Web et des icônes . Pour le débogage, vous pouvez utiliser Chrome pour déboguer le code HTML et garantir un résultat parfait. Les fonctionnalités avancées incluent l'intégration d'OpenAI pour le traitement intelligent des PDF, la prise en charge d'Azure Blob Storage et la fonctionnalité d'impression pour la sortie physique.

Pour le déploiement, IronPDF fournit des guides pour la configuration IIS , le déploiement ClickOnce et l'intégration du programme d'installation du logiciel . La bibliothèque prend également en charge les applications MAUI et le déploiement Android pour les scénarios mobiles.

Commencez avec IronPDF maintenant.
green arrow pointer

Prêt à moderniser votre flux de travail PDF writer C#? Commencez votre essai gratuit et découvrez comment IronPDF simplifie la création de PDF dans .NET. Grâce à une documentation complète, une référence API et une assistance réactive, vous générerez des PDF professionnels en quelques minutes, et non en quelques heures. Consultez notre journal des modifications pour connaître les dernières mises à jour et les étapes clés des fonctionnalités à venir.

Transformez dès aujourd'hui votre création de documents avec IronPDF et rejoignez les milliers de développeurs qui sont déjà passés à la génération moderne de PDF en C#. Que vous utilisiez VB.NET , F# ou que vous travailliez avec Blazor , IronPDF est là pour vous.

Questions Fréquemment Posées

Qu'est-ce que C# PDFWriter?

C# PDFWriter est un outil qui permet aux développeurs de créer des documents PDF par programmation en utilisant le langage de programmation C#.

Pourquoi les développeurs devraient-ils choisir C# PDFWriter?

Les développeurs devraient choisir C# PDFWriter car il simplifie le processus de création de PDF, réduisant la nécessité d'API complexes et de code standard.

Comment IronPDF améliore-t-il la création de PDF en C#?

IronPDF fournit une API simplifiée qui facilite la génération, la manipulation et la personnalisation des documents PDF directement au sein de leurs applications C#.

Quels défis les bibliothèques open source plus anciennes présentent-elles?

Les bibliothèques open source plus anciennes ont souvent des API complexes et nécessitent un code standard étendu, rendant la création de PDF lourde et chronophage.

IronPDF peut-il gérer des tâches complexes de création de PDF?

Oui, IronPDF est conçu pour gérer efficacement à la fois des tâches simples et complexes de création de PDF, offrant de nombreuses fonctions de personnalisation et d'automatisation.

Quels sont les avantages d'utiliser IronPDF par rapport à d'autres bibliothèques PDF?

IronPDF offre une API conviviale, une documentation complète et des fonctionnalités robustes qui réduisent le temps de développement et améliorent la qualité des sorties PDF.

IronPDF est-il adapté aux débutants en développement C#?

Oui, IronPDF est adapté aux débutants car il simplifie la création de PDF avec des exemples de code simples et des ressources de support étendues.

Comment IronPDF s'intègre-t-il aux applications .NET ?

IronPDF s'intègre parfaitement aux applications .NET, permettant aux développeurs d'incorporer des fonctionnalités PDF directement dans leurs projets en utilisant C#.

Quel type de support est disponible pour les développeurs utilisant IronPDF?

Les développeurs utilisant IronPDF ont accès à une documentation complète, à des forums communautaires et à un support technique pour les aider face à tous les défis de développement.

IronPDF peut-il être utilisé pour les applications web et de bureau?

Oui, IronPDF peut être utilisé pour des applications web et de bureau, offrant une flexibilité quant à la façon dont les PDF sont générés et gérés sur différentes plateformes.

IronPDF prend-il en charge la dernière version de .NET 10 ?

Oui, IronPDF prend entièrement en charge .NET 10, ainsi que .NET 9, .NET 8, .NET 7, .NET 6, .NET Core et .NET Framework, permettant aux développeurs d'utiliser C# PDFWriter et les API associées dans les applications .NET 10 modernes.

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