HTML en PDF : Un tutoriel rapide pour C# .NET

Comment convertir HTML en PDF en C# (Guide du développeur)

This article was translated from English: Does it need improvement?
Translated
View the article in English

La conversion de HTML en PDF en C# semble souvent simple jusqu'à ce que les exigences du monde réel fassent surface. Les développeurs rencontrent rapidement des limitations qui ont un impact sur la précision du rendu, le déploiement et l'évolutivité.

Au-delà du rendu, la compatibilité de l'infrastructure devient critique. Les équipes doivent s'assurer que la génération de PDF fonctionne dans les environnements d'exécution .NET modernes, les plateformes cloud et les environnements conteneurisés sans compromis sur les performances.

Pour combler ces lacunes, les solutions modernes basées sur Chrome, comme IronPDF, offrent une plus grande fidélité de rendu, une prise en charge plus large des plateformes et des flux de déploiement prêts pour la production - explorés étape par étape dans la suite de ce guide.

TL;DR : Guide de démarrage rapide pour convertir du HTML en PDF

Vous pouvez facilement convertir du HTML en PDF en C# en utilisant la bibliothèque IronPDF , qui fournit la méthode ChromePdfRenderer.RenderHtmlAsPdf pour créer des fichiers PDF de haute qualité à partir de HTML, CSS et JavaScript.

  1. Installez IronPDF avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronPdf
  2. Copiez et exécutez cet extrait de code.

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<p>Hello World</p>")
           .SaveAs("pixelperfect.pdf");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer

Après avoir acheté ou vous être inscrit pour un essai de 30 jours d'IronPDF, trouvez la clé de licence envoyée à votre email. Ajoutez votre clé de licence au début de votre application.

IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf

IronPdf.License.LicenseKey = "KEY"
$vbLabelText   $csharpLabel

Pourquoi les développeurs .NET ont besoin d'un convertisseur HTML vers PDF pour C#

IronPDF utilise un moteur de rendu Google Chromium intégré pour garantir des conversions fidèles, préservant avec précision la mise en page et le style de votre contenu web.

Moteur de rendu Chrome robuste : le moteur Blink de Chrome pour une conversion HTML en PDF précise, maintenant amélioré avec des corrections pour la mémoire, les formulaires et la précision du rendu (v2025.9.4)

Précision au pixel : les PDF générés correspondent exactement aux pages web, pas à une version prête à imprimer. Les dernières corrections couvrent la coupe des en-têtes/pieds de page personnalisés, la préservation des textes en niveaux de gris, et les caractères spéciaux/émojis dans les métadonnées (à partir de v2025.9.4)

Support complet pour le web moderne : prise en charge complète de CSS3, HTML5, JavaScript pour tous les éléments HTML. Les améliorations récentes couvrent le traitement des champs de formulaire pour les longues zones de texte et les cases à cocher.

Amélioration des performances de 5 à 20 fois : considérablement plus rapide que l'automatisation du navigateur ou les pilotes web, maintenant avec des corrections de fuite de mémoire et des tailles de fichier réduites pour les éléments répétés comme les tampons/en-têtes dans les opérations par lot.

Conformité PDF/UA : génération de PDF accessibles répondant aux normes de la Section 508, améliorée pour le rendu des formulaires multiplateforme (ex. Linux).

Pas de dépendances externes : aucun exécutable à installer sur les serveurs

✅ Conçu pour C#, F#, & VB.NET fonctionnant sur .NET 10, 9, 8, 7, 6, Core, Standard, ou Framework

IronPDF simplifie le processus pour les développeurs .NET en offrant une solution simple et efficace pour générer des documents PDF d'aspect professionnel à partir du HTML de votre application web. Des factures et rapports aux certificats et archives, les développeurs peuvent travailler avec leur pile web familière tandis qu'IronPDF gère le complexe en quelques lignes de code.

RELATED: IronPDF Changelog: Updates, milestones, roadmap

Ce que vous apprendrez

  1. Comment convertir HTML en PDF C#

  2. Comment configurer les paramètres HTML en PDF

  3. Comment utiliser les fonctions avancées de génération et de sécurité des PDF

  4. Comment déployer du HTML en PDF sur des plateformes cloud

  5. Comparer IronPDF avec d'autres bibliothèques PDF .NET

  6. Dépannage & Support technique

1. How to Convert HTML to PDF C

Que vous travailliez avec des chaînes HTML, des URL ou des fichiers HTML, IronPDF offre des options flexibles pour générer des documents PDF de haute qualité qui répondent à vos besoins spécifiques.

Dans ce tutoriel, nous vous guiderons à travers les scénarios les plus courants, y compris la conversion d'une chaîne HTML en PDF, d'une URL en PDF et d'un fichier HTML en PDF. De plus, IronPDF offre également une variété d'opérations pour manipuler des documents PDF :

Conversion PDF polyvalente Conversion de pages web dynamiques en PDF

Comment convertir une chaîne HTML en PDF

L'opération la plus fondamentale est la conversion de chaîne HTML en PDF. Cette méthode est parfaite pour le contenu HTML généré dynamiquement. La méthode RenderHtmlAsPdf prend entièrement en charge HTML5, CSS3, JavaScript et les images lors de la conversion directe de HTML en PDF.

using IronPDF;

// Create the Chrome renderer
var renderer = new ChromePdfRenderer();

// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Save the PDF
pdf.SaveAs("output.pdf");
using IronPDF;

// Create the Chrome renderer
var renderer = new ChromePdfRenderer();

// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Save the PDF
pdf.SaveAs("output.pdf");
Imports IronPDF

' Create the Chrome renderer
Dim renderer As New ChromePdfRenderer()

' Convert HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")

' Save the PDF
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Conseils(Mise à jour pour v2025.9.4) Les dernières mises à jour corrigent les problèmes avec les caractères spéciaux/émoticônes dans les métadonnées HTML et assurent une meilleure gestion des champs de formulaire HTML, y compris les caractères chinois sur Linux. Testez le contenu dynamique avec EnableJavaScript = true pour des résultats optimaux.

Lorsque votre chaîne HTML fait référence à des ressources locales telles que des images ou des feuilles de style, utilisez le paramètre BaseUrlPath pour convertir correctement le contenu HTML avec toutes les ressources :

using IronPDF;

var renderer = new ChromePdfRenderer();

// Convert HTML content with local image and CSS references
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <img src='logo.png' alt='Company Logo'>
    <h1>Company Report</h1>
    <p>Annual report content...</p>";

// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Convert HTML content with local image and CSS references
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <img src='logo.png' alt='Company Logo'>
    <h1>Company Report</h1>
    <p>Annual report content...</p>";

// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Convert HTML content with local image and CSS references
Dim html As String = "
    <link rel='stylesheet' href='styles.css'>
    <img src='logo.png' alt='Company Logo'>
    <h1>Company Report</h1>
    <p>Annual report content...</p>"

' Set base path for resolving relative URLs in HTML to PDF conversion
Dim pdf = renderer.RenderHtmlAsPdf(html, "C:\MyProject\Assets\")
pdf.SaveAs("report.pdf")
$vbLabelText   $csharpLabel

ConseilsBaseUrlPath indique à IronPDF où trouver vos fichiers CSS, JavaScript, et image. Tous les chemins relatifs dans votre chaîne HTML seront résolus depuis ce répertoire.

RELATED HOW-TO ARTICLE: How to Convert HTML String to PDF in C#

Comment exporter une URL existante en PDF

Le rendu de pages web entières en PDFs avec C# permet aux équipes de séparer le design PDF et le travail de rendu côté serveur. Cette approche vous permet de convertir toute URL spécifiée directement au format PDF.

CSS Impression vs Écran

Vous pouvez configurer IronPDF pour rendre à l'aide de l'un ou l'autre type de média CSS.

using IronPDF;
using IronPdf.Rendering;

// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();

// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Screen media type shows the entire web page as displayed on screen
using IronPDF;
using IronPdf.Rendering;

// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();

// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Screen media type shows the entire web page as displayed on screen
Imports IronPDF
Imports IronPdf.Rendering

' Initialize HTML to PDF converter
Dim renderer As New ChromePdfRenderer()

' Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print

' Screen media type shows the entire web page as displayed on screen
$vbLabelText   $csharpLabel

Support JavaScript

IronPDF prend entièrement en charge JavaScript, jQuery, et même AJAX lorsque vous convertissez HTML en PDF. Pour le contenu HTML dynamique, vous pouvez configurer IronPDF pour attendre la fin de JavaScript avant de rendre les pages web en PDF. C'est parfait pour les applications à page unique et les sites web dynamiques.

using IronPDF;

// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();

// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;

// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
using IronPDF;

// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();

// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;

// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
Imports IronPDF

' Configure JavaScript rendering for dynamic HTML content to PDF
Dim renderer As New ChromePdfRenderer()

' Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = True

' WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500 ' milliseconds
$vbLabelText   $csharpLabel

L'exécution JavaScript peut également être montrée lors du rendu d'un graphique d3.js avancé en format PDF depuis une page web :

using IronPDF;

// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();

// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");

// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
using IronPDF;

// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();

// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");

// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
Imports IronPDF

' Create renderer for JavaScript-heavy HTML
Dim renderer As New ChromePdfRenderer()

' Convert d3.js visualization web page to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")

' Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf")
$vbLabelText   $csharpLabel

CSS Réactif

Les pages web adaptatives étant conçues pour être visualisées dans un navigateur, et IronPDF n'ouvrant pas de véritable fenêtre de navigateur sur le système d'exploitation de votre serveur, les éléments HTML adaptatifs peuvent s'afficher à leur taille minimale. Il est recommandé de résoudre ce problème lors du rendu de pages web complètes.

// Configure for optimal responsive design handling in HTML to PDF

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Configure for optimal responsive design handling in HTML to PDF

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
```vbnet
' Configure for optimal responsive design handling in HTML to PDF

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
```
$vbLabelText   $csharpLabel

RELATED HOW-TO ARTICLE: How to Render URL to PDF

Comment convertir un fichier HTML en PDF

La conversion de fichiers HTML locaux en PDF préserve tous les actifs relatifs, y compris le CSS, les images et le JavaScript, comme s'ils étaient ouverts en utilisant le protocole file://. Cette méthode de conversion HTML en PDF est le mieux pour convertir des modèles ou des pages HTML pré-conçues en documents PDF.

using IronPDF;

// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();

// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

// Save the HTML file as PDF 
pdf.SaveAs("Invoice.pdf");

// All CSS, JavaScript, and images load correctly in the generated PDF
using IronPDF;

// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();

// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

// Save the HTML file as PDF 
pdf.SaveAs("Invoice.pdf");

// All CSS, JavaScript, and images load correctly in the generated PDF
Imports IronPDF

' Initialize ChromePdfRenderer for HTML file conversion
Dim renderer As New ChromePdfRenderer()

' Convert HTML file to PDF documents
' Preserves all relative paths and linked resources in HTML
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")

' Save the HTML file as PDF 
pdf.SaveAs("Invoice.pdf")

' All CSS, JavaScript, and images load correctly in the generated PDF
$vbLabelText   $csharpLabel

ConseilsGardez vos fichiers HTML dans un dossier séparé avec leurs ressources (CSS, images) pour les éditer et tester dans un navigateur avant de convertir le fichier HTML en PDF. Cela garantit que votre HTML se rend parfaitement pour des documents PDF de haute qualité.

RELATED HOW-TO Article: Render HTML File to PDF

Comment convertir des pages Razor en PDF

Si votre projet ASP.NET Core utilise déjà des pages Razor, vous pouvez les convertir directement en PDF sans reconstruire votre HTML. L'extension Razor d'IronPDF ajoute la méthode RenderRazorToPdf, qui prend votre page .cshtml — complète avec son modèle et sa mise en page — et la rend en tant que document PDF en un seul appel.

PM > Install-Package IronPdf.Extensions.Razor
PM > Install-Package IronPdf.Extensions.Razor
SHELL
using IronPDF;

var renderer = new ChromePdfRenderer();

// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);

Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);

Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Render a Razor Page directly to PDF
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)

Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

Veuillez noterRenderRazorToPdf nécessite un projet ASP.NET Core Web App. Cela ne fonctionnera pas dans les applications de console ou les bibliothèques de classes — le moteur de vue Razor doit être disponible dans le pipeline d'hébergement.

RELATED HOW-TO Article: How to Convert CSHTML to PDF in Razor Pages

Comment convertir des vues MVC en PDF

Les équipes utilisant le modèle MVC peuvent générer des PDF directement à partir de leurs vues et contrôleurs existants. Installez le package d'extension MVC Core, puis appelez RenderRazorViewToPdf avec votre chemin de vue et votre modèle — IronPDF gère le pipeline de rendu Razor et produit un PDF finalisé.

C'est particulièrement utile pour les rapports, les factures, et toute page où le HTML est déjà conçu et testé dans le navigateur. Le PDF généré préserve la sortie complète de la Vue, y compris les pages de mise en page et les vues partielles.

PM > Install-Package IronPdf.Extensions.Mvc.Core
PM > Install-Package IronPdf.Extensions.Mvc.Core
SHELL

Commencez par enregistrer le service IRazorViewRenderer dans votre fichier Program.cs afin que vos contrôleurs puissent l'injecter :

using IronPdf.Extensions.Mvc.Core;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();

// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
using IronPdf.Extensions.Mvc.Core;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();

// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
Imports IronPdf.Extensions.Mvc.Core

Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()

' Register the Razor view renderer for IronPDF
builder.Services.AddSingleton(Of IHttpContextAccessor, HttpContextAccessor)()
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
$vbLabelText   $csharpLabel

Ensuite, dans votre action de contrôleur, injectez le renderer et convertissez n'importe quelle Vue en PDF :

using IronPDF;
using IronPdf.Extensions.Mvc.Core;

var renderer = new ChromePdfRenderer();

// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
    _viewRenderService, "Views/Home/Report.cshtml", reportModel);

Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
using IronPDF;
using IronPdf.Extensions.Mvc.Core;

var renderer = new ChromePdfRenderer();

// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
    _viewRenderService, "Views/Home/Report.cshtml", reportModel);

Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
Imports IronPDF
Imports IronPdf.Extensions.Mvc.Core

Dim renderer As New ChromePdfRenderer()

' Render an MVC View with model data to PDF
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Report.cshtml", reportModel)

Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

RELATED HOW-TO Article: How to Convert Views to PDF in ASP.NET Core MVC

2. Comment configurer les paramètres de conversion HTML en PDF

En matière de manipulation de documents PDF, IronPDF offre des possibilités de personnalisation étendues grâce à la propriété ChromePdfRenderer.RenderingOptions pour les PDF rendus.

Paramètres Description Exemple
Taille du papier Définir les dimensions des pages pour les PDF existants (A4, Letter, Legal, etc.) `PdfPaperSize.A4`
Orientation du papier Définir le mode portrait ou paysage pour les PDF existants `PdfPaperOrientation.Landscape`
Marge supérieure/inférieure/gauche/droite Définir les marges de page en millimètres (par défaut : 25mm)
Type de média CSS Écran ou impression CSS pour HTML vers PDF `PdfCssMediaType.Print`
Imprimer les arrière-plans HTML Inclure les couleurs d'arrière-plan/images (par défaut : true) vrai
Activer JavaScript Exécuter JavaScript avant de rendre le contenu HTML vrai
WaitFor.RenderDelay Temps d'attente pour un contenu HTML dynamique (ms) 500

Voir cet extrait de code pour un exemple complet de configuration pour manipuler des documents PDF :

using IronPDF;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;

// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
using IronPDF;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;

// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
Imports IronPDF
Imports IronPdf.Rendering

Dim renderer As New ChromePdfRenderer()

' Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print

' Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50

' Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = True

' Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape

' Generate PDFs with all settings applied to HTML content
Dim htmlContent As String = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>"
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdfDocument.SaveAs("styled-output.pdf")
$vbLabelText   $csharpLabel

ConseilsUtilisez PdfCssMediaType pour des mises en page plus propres et optimisées pour l'impression dans votre format de fichier PDF rendu. Utilisez Écran pour correspondre exactement à ce que les utilisateurs voient dans leur navigateur.

ARTICLES RELIÉS SUR COMMENT FAIRE :

Conversion PDF sur mesure Affiner la disposition du PDF

Comment définir des en-têtes HTTP personnalisés, des cookies et des identifiants de connexion

Lors du rendu d'URL nécessitant une authentification ou des métadonnées de requête spécifiques, IronPDF vous permet d'inclure les identifiants de connexion, les cookies de session, et les en-têtes HTTP avec la requête. Cela permet de rendre des tableaux de bord intranet, des rapports restreints, ou des pages générées par une API directement en PDF sans avoir besoin de récupérer séparément le HTML.

Pour l'authentification de base ou NTLM, définissez un objet LoginCredentials sur le moteur de rendu. Pour un accès basé sur un jeton ou une session, transmettez les cookies et les en-têtes via RenderingOptions avant d'appeler RenderUrlAsPdf.

using IronPDF;

var renderer = new ChromePdfRenderer();

// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
    NetworkUsername = "user@domain.com",
    NetworkPassword = "securePassword"
};

// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";

// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";

var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
    NetworkUsername = "user@domain.com",
    NetworkPassword = "securePassword"
};

// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";

// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";

var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
    .NetworkUsername = "user@domain.com",
    .NetworkPassword = "securePassword"
}

' Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123"

' Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."

Dim pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
$vbLabelText   $csharpLabel

ARTICLES RELIÉS SUR COMMENT FAIRE : Render PDFs Behind Login Authentication | Custom HTTP Request Headers

Comment configurer un proxy pour le rendu PDF

Lors du rendu HTML qui charge des ressources externes derrière un proxy d'entreprise, transmettez l'adresse du proxy comme troisième paramètre sur RenderHtmlAsPdf(). Il s'agit d'un paramètre de méthode, et non d'une propriété sur ChromePdfRenderOptions — il est donc défini par appel de rendu, et non sur l'instance du moteur de rendu.

Pour les proxys authentifiés, intégrez les informations d'identification directement dans l'URL en utilisant le format http://user:pass@host:port. Encodez les caractères spéciaux des mots de passe en URL avec Uri.EscapeDataString().

using IronPDF;

var renderer = new ChromePdfRenderer();

// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
    "<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
    baseUrlOrPath: null,
    proxy: "http://proxy.corp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
    "<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
    baseUrlOrPath: null,
    proxy: "http://proxy.corp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Proxy is the third parameter — not a render option
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(
    "<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
    baseUrlOrPath:=Nothing,
    proxy:="http://proxy.corp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
$vbLabelText   $csharpLabel

Notez que RenderUrlAsPdf() n'accepte pas de paramètre proxy. Pour afficher une URL en direct derrière un proxy, récupérez d'abord le HTML avec HttpClient configuré avec un WebProxy, puis transmettez-le à RenderHtmlAsPdf() avec le paramètre proxy pour le chargement des ressources.

RELATED HOW-TO Article: How to Configure Proxy Servers for PDF Rendering

3. Comment utiliser les fonctionnalités avancées de génération et de sécurité des PDF

Débloquez des capacités de niveau entreprise pour la conversion HTML en PDF avec des modèles avancés, des opérations asynchrones, et des fonctionnalités de sécurité. Ces méthodes de manipulation de PDFs vous permettent de créer des documents PDF à grande échelle, de protéger les fichiers PDF sensibles, et d'assurer l'authenticité des documents lorsque vous convertissez HTML en format PDF professionnel.

Comment générer un modèle HTML pour la création de PDF par lot

Création de PDF par lot de base

La création de PDF par lot est essentielle pour générer efficacement plusieurs documents PDF personnalisés. Pour les scénarios de base, la méthode String.Format en C# fonctionne le mieux pour la manipulation simple de PDF.

// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");

// Results in HTML content: <h1>Hello World!</h1>
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");

// Results in HTML content: <h1>Hello World!</h1>
' Simple HTML templating with String.Format
Dim htmlTemplate As String = String.Format("<h1>Hello {0}!</h1>", "World")

' Results in HTML content: <h1>Hello World!</h1>
$vbLabelText   $csharpLabel

Pour les modèles plus longs lorsque vous devez générer des documents PDF, utilisez le remplacement de repères dans votre contenu HTML : using IronPDF;

// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";

// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };

// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();

foreach (var name in names)
{
    // Replace placeholder with actual data in HTML string
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    // Generate personalized PDF document from HTML content
    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    // Save with customer-specific filename as PDF files
    pdf.SaveAs($"{name}-invoice.pdf");
}
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";

// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };

// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();

foreach (var name in names)
{
    // Replace placeholder with actual data in HTML string
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    // Generate personalized PDF document from HTML content
    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    // Save with customer-specific filename as PDF files
    pdf.SaveAs($"{name}-invoice.pdf");
}
' Define reusable HTML template for PDF files
Dim htmlTemplate As String = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>"

' Customer names for batch PDF conversion processing
Dim names As String() = {"John", "James", "Jenny"}

' Create personalized PDF documents for each customer
Dim renderer As New ChromePdfRenderer()

For Each name In names
    ' Replace placeholder with actual data in HTML string
    Dim htmlInstance As String = htmlTemplate.Replace("[[NAME]]", name)

    ' Generate personalized PDF document from HTML content
    Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)

    ' Save with customer-specific filename as PDF files
    pdf.SaveAs($"{name}-invoice.pdf")
Next
$vbLabelText   $csharpLabel

Modélisation HTML en PDF avec Handlebars.NET

Pour les modèles complexes avec des boucles et des conditions lors de la conversion de HTML en PDF, utilisez la modélisation avancée avec Handlebars.NET pour générer des documents PDF avec un contenu HTML dynamique.

# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Package Handlebars.NET
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Package Handlebars.NET
SHELL
using HandlebarsDotNet;
using IronPDF;

// Define Handlebars template with placeholders for HTML content
var source = 
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";

// Compile template for reuse in PDF conversion
var template = Handlebars.Compile(source);

// Create data object (can be database records) for HTML to PDF directly
var data = new { 
    title = "Monthly Report", 
    body = "Sales increased by 15% this month." 
};

// Merge template with data to create HTML content
var htmlResult = template(data);

// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);

pdf.SaveAs("monthly-report.pdf");
using HandlebarsDotNet;
using IronPDF;

// Define Handlebars template with placeholders for HTML content
var source = 
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";

// Compile template for reuse in PDF conversion
var template = Handlebars.Compile(source);

// Create data object (can be database records) for HTML to PDF directly
var data = new { 
    title = "Monthly Report", 
    body = "Sales increased by 15% this month." 
};

// Merge template with data to create HTML content
var htmlResult = template(data);

// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);

pdf.SaveAs("monthly-report.pdf");
Imports HandlebarsDotNet
Imports IronPDF

' Define Handlebars template with placeholders for HTML content
Dim source As String = 
    "<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>"

' Compile template for reuse in PDF conversion
Dim template = Handlebars.Compile(source)

' Create data object (can be database records) for HTML to PDF directly
Dim data = New With { 
    .title = "Monthly Report", 
    .body = "Sales increased by 15% this month." 
}

' Merge template with data to create HTML content
Dim htmlResult = template(data)

' Convert templated HTML to PDF using the PDF converter
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlResult)

pdf.SaveAs("monthly-report.pdf")
$vbLabelText   $csharpLabel

RELATED HOW-TO ARTICLE: Learn more about Handlebars.NET on GitHub

Contrôlez les sauts de page du PDF :

La gestion de la pagination dans les documents PDF générés garantit des mises en page professionnelles et lisibles lorsque vous convertissez des extraits HTML. Utilisez les feuilles de style CSS pour contrôler l'interruption des pages dans vos fichiers PDF.
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page {
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>Page 1 Content</h1>
    </div>
    <div class="page">
      <h1>Page 2 Content</h1>
    </div>
    <div class="page">
      <h1>Page 3 Content</h1>
    </div>
  </body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page {
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>Page 1 Content</h1>
    </div>
    <div class="page">
      <h1>Page 2 Content</h1>
    </div>
    <div class="page">
      <h1>Page 3 Content</h1>
    </div>
  </body>
</html>
HTML

Comment générer un PDF en utilisant la méthode asynchrone

IronPDF offre des performances de niveau entreprise avec un support complet asynchrone et multithread pour vos besoins de conversion HTML en PDF lorsque vous devez générer des fichiers PDF à grande échelle.

using IronPDF;
using System.Threading.Tasks;

// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();

    // Async HTML to PDF conversion preserves thread pool
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);

    // Return PDF files as byte array for web responses
    return pdf.BinaryData;
}

// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlModèles)
{
    var renderer = new ChromePdfRenderer();

    // Create parallel conversion tasks to generate PDF documents
    var tasks = htmlModèles.Select(html => 
        renderer.RenderHtmlAsPdfAsync(html)
    );

    // Await all PDF conversions simultaneously
    var pdfs = await Task.WhenAll(tasks);

    // Save generated PDF files from HTML content
    for (int i = 0; i < pdfs.Length; i++)
    {
        pdfs[i].SaveAs($"document-{i}.pdf");
    }
}
using IronPDF;
using System.Threading.Tasks;

// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();

    // Async HTML to PDF conversion preserves thread pool
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);

    // Return PDF files as byte array for web responses
    return pdf.BinaryData;
}

// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlModèles)
{
    var renderer = new ChromePdfRenderer();

    // Create parallel conversion tasks to generate PDF documents
    var tasks = htmlModèles.Select(html => 
        renderer.RenderHtmlAsPdfAsync(html)
    );

    // Await all PDF conversions simultaneously
    var pdfs = await Task.WhenAll(tasks);

    // Save generated PDF files from HTML content
    for (int i = 0; i < pdfs.Length; i++)
    {
        pdfs[i].SaveAs($"document-{i}.pdf");
    }
}
Imports IronPDF
Imports System.Threading.Tasks

' Async method for non-blocking PDF generation from HTML content
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
    Dim renderer As New ChromePdfRenderer()

    ' Async HTML to PDF conversion preserves thread pool
    Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)

    ' Return PDF files as byte array for web responses
    Return pdf.BinaryData
End Function

' Concurrent batch PDF generation for multiple HTML strings
Public Async Function GenerateMultiplePdfsAsync(htmlModèles As List(Of String)) As Task
    Dim renderer As New ChromePdfRenderer()

    ' Create parallel conversion tasks to generate PDF documents
    Dim tasks = htmlModèles.Select(Function(html) renderer.RenderHtmlAsPdfAsync(html))

    ' Await all PDF conversions simultaneously
    Dim pdfs = Await Task.WhenAll(tasks)

    ' Save generated PDF files from HTML content
    For i As Integer = 0 To pdfs.Length - 1
        pdfs(i).SaveAs($"document-{i}.pdf")
    Next
End Function
$vbLabelText   $csharpLabel

ConseilsConseils d'optimisation des performances pour la conversion HTML vers PDF

  • Utilisez des systèmes 64 bits pour une performance optimale de génération de PDF.
  • Assurez des ressources serveur adéquates lorsque vous générez des documents PDF (évitez les niveaux gratuits sous-capacitaires)
  • Permettez un délai de rendu suffisant pour un JavaScript complexe dans le contenu HTML.
  • Réutilisez les instances ChromePdfRenderer lorsque cela est possible.
  • Exploitez les corrections de mémoire v2025.9.4 pour les opérations par lot/asynchrones pour réduire l'utilisation des ressources ; testez pour des tailles de fichiers réduites avec des en-têtes/pieds de page personnalisés répétés.

RELATED HOW-TO Article: How to Generate PDFs with Async and Multithreading

Comment ajouter des fonctionnalités de sécurité avancées

Comment ajouter une protection par mot de passe pour les fichiers PDF en .NET

Sécurisez les documents PDF générés sensibles avec des mots de passe et des permissions lorsque vous convertissez le contenu HTML au format PDF protégé.

using IronPDF;
var renderer = new ChromePdfRenderer();

// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");

// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123";     // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456";   // Password to modify PDF files

// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;

// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();

// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");

// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123";     // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456";   // Password to modify PDF files

// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;

// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Convert HTML to PDF with security
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>")

' Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"     ' Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"   ' Password to modify PDF files

' Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint

' Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256
pdf.SaveAs("secure-document.pdf")
$vbLabelText   $csharpLabel

Comment ajouter des signatures numériques aux fichiers PDF

Ajoutez des signatures cryptographiques pour assurer l'authenticité des documents PDF lorsque vous générez des fichiers PDF à partir du contenu HTML.

using IronPDF;
using IronPdf.Signing;

var renderer = new ChromePdfRenderer();

// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");

// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "legal@company.com",
    SigningLocation = "New York, NY",
    SigningReason = "Contract Approval",
    SignerName = "Authorized Signer"  // New property in v2025.8.8 for enhanced signature details
};

// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
using IronPDF;
using IronPdf.Signing;

var renderer = new ChromePdfRenderer();

// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");

// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "legal@company.com",
    SigningLocation = "New York, NY",
    SigningReason = "Contract Approval",
    SignerName = "Authorized Signer"  // New property in v2025.8.8 for enhanced signature details
};

// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
Imports IronPDF
Imports IronPdf.Signing

Dim renderer As New ChromePdfRenderer()

' Generate PDF from HTML page
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")

' Create digital signature with certificate for PDF files
Dim signature As New PdfSignature("certificate.pfx", "password") With {
    .SigningContact = "legal@company.com",
    .SigningLocation = "New York, NY",
    .SigningReason = "Contract Approval",
    .SignerName = "Authorized Signer"  ' New property in v2025.8.8 for enhanced signature details
}

' Apply signature to PDF documents
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
$vbLabelText   $csharpLabel

RELATED HOW-TO Article: Digitally Signing PDF Documents with C#

Comment convertir des formulaires HTML en PDF remplissables

Pour convertir les éléments de formulaire HTML standard en champs de formulaire PDF interactifs et remplissables, activez l'option de rendu CreatePdfFormsFromHtml. Cela préserve les entrées de texte, les cases à cocher, les boutons radio et les menus déroulants comme champs modifiables dans le document PDF généré.

using IronPDF;

var renderer = new ChromePdfRenderer();

// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string htmlForm = @"
    <h2>Employee Onboarding Form</h2>
    <form>
        <label>Full Name:</label>
        <input type='text' name='fullName' value='' /><br/>
        <label>Department:</label>
        <select name='department'>
            <option value='engineering'>Engineering</option>
            <option value='marketing'>Marketing</option>
            <option value='sales'>Sales</option>
        </select><br/>
        <label>Agree to Terms:</label>
        <input type='checkbox' name='agreeTerms' />
    </form>";

var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string htmlForm = @"
    <h2>Employee Onboarding Form</h2>
    <form>
        <label>Full Name:</label>
        <input type='text' name='fullName' value='' /><br/>
        <label>Department:</label>
        <select name='department'>
            <option value='engineering'>Engineering</option>
            <option value='marketing'>Marketing</option>
            <option value='sales'>Sales</option>
        </select><br/>
        <label>Agree to Terms:</label>
        <input type='checkbox' name='agreeTerms' />
    </form>";

var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
Imports IronPDF

Dim renderer = New ChromePdfRenderer()

' Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

Dim htmlForm As String = "
    <h2>Employee Onboarding Form</h2>
    <form>
        <label>Full Name:</label>
        <input type='text' name='fullName' value='' /><br/>
        <label>Department:</label>
        <select name='department'>
            <option value='engineering'>Engineering</option>
            <option value='marketing'>Marketing</option>
            <option value='sales'>Sales</option>
        </select><br/>
        <label>Agree to Terms:</label>
        <input type='checkbox' name='agreeTerms' />
    </form>"

Dim pdf = renderer.RenderHtmlAsPdf(htmlForm)
pdf.SaveAs("onboarding-form.pdf")
$vbLabelText   $csharpLabel

AvertissementChaque champ de formulaire dans votre HTML doit avoir un attribut unique name. Les noms en double entraîneront les champs à partager la même valeur dans le PDF généré, conduisant à un comportement inattendu lorsque les utilisateurs remplissent le formulaire.

RELATED HOW-TO Article: How to Create Fillable PDF Forms in C#

Comment convertir des éléments HTML spécifiques en PDF

Pour rendre une section spécifique d'une page plutôt que le document complet, isolez l'élément cible avant de le rendre. L'approche la plus directe utilise l'option de rendu JavaScript pour remplacer le corps du document par le contenu de l'élément cible, combinée avec WaitFor.HtmlQuerySelector() pour garantir que l'élément existe avant l'extraction. L'extrait ci-dessous préserve document.head afin que les feuilles de style et les polices soient conservées — sans cette étape, les règles CSS reposant sur des sélecteurs ancêtres seraient perdues dans le PDF extrait.

Pour les scénarios côté serveur où vous avez accès au HTML brut, extrayez le fragment cible avec un analyseur comme AngleSharp et transmettez-le à RenderHtmlAsPdf() — aucune exécution JavaScript n'est nécessaire.

using IronPDF;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;

// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
    var el = document.querySelector('#invoice-summary');
    if (el) {
        var head = document.head.innerHTML;
        document.body.innerHTML = el.outerHTML;
        document.head.innerHTML = head;
    }
";

// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);

var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;

// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
    var el = document.querySelector('#invoice-summary');
    if (el) {
        var head = document.head.innerHTML;
        document.body.innerHTML = el.outerHTML;
        document.head.innerHTML = head;
    }
";

// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);

var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
Imports IronPDF

Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True

' Replace the body with only the target element
renderer.RenderingOptions.JavaScript = "
    var el = document.querySelector('#invoice-summary');
    if (el) {
        var head = document.head.innerHTML;
        document.body.innerHTML = el.outerHTML;
        document.head.innerHTML = head;
    }
"

' Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000)

Dim pdf = renderer.RenderHtmlAsPdf(fullPageHtml)
pdf.SaveAs("invoice-summary.pdf")
$vbLabelText   $csharpLabel

RELATED HOW-TO Article: How to Convert HTML Elements and Partial Pages to PDF

Comment rendre des pages authentifiées en PDF

Il existe trois mécanismes pour rendre les pages qui se trouvent derrière une authentification : les identifiants de connexion réseau, les cookies personnalisés et les en-têtes de requête HTTP. Ceux-ci couvrent les scénarios d'authentification les plus courants lors de la conversion de contenu web protégé en PDF.

Identifiants de connexion

Utilisez ChromeHttpLoginCredentials pour l'authentification de base, digest ou NTLM lors de la conversion d'URL protégées en PDF.

using IronPDF;

var renderer = new ChromePdfRenderer();

// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
    NetworkUsername = "user@domain.com",
    NetworkPassword = "securePassword",
    AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};

var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports");
pdf.SaveAs("authenticated-report.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
    NetworkUsername = "user@domain.com",
    NetworkPassword = "securePassword",
    AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};

var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports");
pdf.SaveAs("authenticated-report.pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Configure network authentication
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
    .NetworkUsername = "user@domain.com",
    .NetworkPassword = "securePassword",
    .AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
}

Dim pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports")
pdf.SaveAs("authenticated-report.pdf")
$vbLabelText   $csharpLabel

Cookies et en-têtes HTTP

Pour l'authentification basée sur les tokens ou les sessions, attachez directement les cookies et les en-têtes HTTP personnalisés à la requête de rendu.

using IronPDF;

var renderer = new ChromePdfRenderer();

// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";

// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";

var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
using IronPDF;

var renderer = new ChromePdfRenderer();

// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";

// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";

var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
Imports IronPDF

Dim renderer As New ChromePdfRenderer()

' Add session cookies
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123token"
renderer.RenderingOptions.CustomCookies("authToken") = "bearer-xyz"

' Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."

Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard")
pdf.SaveAs("dashboard.pdf")
$vbLabelText   $csharpLabel

Pour les connexions via formulaire HTML (POST nom d'utilisateur/mot de passe), il est recommandé d'utiliser d'abord le code 1356 pour l'authentification, puis de transmettre les cookies obtenus au dictionnaire CustomCookies afin d'afficher la page protégée.

RELATED HOW-TO Article: How to Convert HTML Behind Login Authentication to PDF

4. Comment déployer du HTML en PDF sur des plateformes cloud

Le déploiement de la conversion HTML en PDF dans des environnements cloud nécessite une configuration spécifique pour le rendu sans tête, les chemins de fichiers temporaires et l'allocation des ressources. Cette section couvre les plateformes cloud les plus courantes et les déploiements conteneurisés avec IronPDF.

Plate-forme Ressources min. Emballer AutoConfig Chemin Temp Point clé
Service d'application Azure Tier B1 (Basique) IronPdf.Linux true /tmp Les tiers Free/Shared échouent — pas de GPU, mémoire faible
Azure Functions (Windows) Tiers B1 IronPDF true /tmp Décochez "Exécuter à partir du fichier package"
AWS Lambda 512 MB / délai de 330s IronPdf.Linux true /tmp (requis) Le système de fichiers par défaut est en lecture seule
Docker (Ubuntu/Debian) Dépendant de l'image IronPdf.Linux false Par défaut de l'image Définissez false — Dockerfile gère les dépendances

Comment déployer sur Azure

Lors du déploiement sur Azure Functions ou App Service, désactivez l'accélération GPU et assurez-vous que votre niveau d'hébergement fournit suffisamment de mémoire pour le rendu basé sur Chrome. Ajoutez ces paramètres au démarrage de l'application, avant tout appel de rendu.

Les sandboxes Azure fonctionnent sans tête sans accès GPU, et les tiers Free/Shared (F1, D1) manquent des ressources requises par Chrome. Ciblez au minimum un niveau B1 (Basique) ou supérieur.

using IronPDF;

// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
using IronPDF;

// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
Imports IronPDF

' Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>")
pdf.SaveAs("azure-report.pdf")
$vbLabelText   $csharpLabel

PrudenceLes niveaux Free et Shared d'Azure App Service (F1, D1) n'ont pas assez de ressources pour le rendu PDF basé sur Chrome. Utilisez au minimum un niveau B1 (Basique) ou supérieur pour éviter les erreurs de manque de mémoire et les délais d'expiration des processus.

RELATED GET-STARTED Guide: How to Deploy IronPDF on Azure

Comment déployer sur AWS Lambda

AWS Lambda nécessite un déploiement basé sur Docker pour le rendu sur Chrome. Le système de fichiers Lambda par défaut est en lecture seule, donc tous les chemins temporaires et de déploiement doivent pointer vers /tmp.

Configurez ces paramètres en haut de votre handler de fonction, avant tout appel de rendu.

using Amazon.Lambda.Core;
using IronPDF;

public class PdfFunction
{
    public string FunctionHandler(string input, ILambdaContext context)
    {
        // Lambda's only writable directory
        var tmpPath = "/tmp/";

        IronPdf.Installation.TempFolderPath = tmpPath;
        IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
        // Let IronPDF install Chrome dependencies on first cold start
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

        context.Logger.LogLine("Rendering PDF...");

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(input);

        // Save to /tmp before uploading to S3 or returning
        var outputPath = $"{tmpPath}output.pdf";
        pdf.SaveAs(outputPath);

        return outputPath;
    }
}
using Amazon.Lambda.Core;
using IronPDF;

public class PdfFunction
{
    public string FunctionHandler(string input, ILambdaContext context)
    {
        // Lambda's only writable directory
        var tmpPath = "/tmp/";

        IronPdf.Installation.TempFolderPath = tmpPath;
        IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
        // Let IronPDF install Chrome dependencies on first cold start
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

        context.Logger.LogLine("Rendering PDF...");

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(input);

        // Save to /tmp before uploading to S3 or returning
        var outputPath = $"{tmpPath}output.pdf";
        pdf.SaveAs(outputPath);

        return outputPath;
    }
}
Imports Amazon.Lambda.Core
Imports IronPDF

Public Class PdfFunction
    Public Function FunctionHandler(input As String, context As ILambdaContext) As String
        ' Lambda's only writable directory
        Dim tmpPath As String = "/tmp/"

        IronPdf.Installation.TempFolderPath = tmpPath
        IronPdf.Installation.CustomDeploymentDirectory = tmpPath
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
        ' Let IronPDF install Chrome dependencies on first cold start
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True

        context.Logger.LogLine("Rendering PDF...")

        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(input)

        ' Save to /tmp before uploading to S3 or returning
        Dim outputPath As String = $"{tmpPath}output.pdf"
        pdf.SaveAs(outputPath)

        Return outputPath
    End Function
End Class
$vbLabelText   $csharpLabel

Veuillez noterConfigurez votre fonction Lambda avec au moins 512 MB de mémoire et un temps limite de 60 secondes minimum. Le rendu basé sur Chrome est gourmand en mémoire, et les démarrages à froid nécessitent un temps d'initialisation supplémentaire pour le moteur de navigateur intégré.

RELATED GET-STARTED Guide: How to Deploy IronPDF on AWS Lambda

Comment déployer avec Docker

Pour les déploiements Docker, utilisez le package NuGet IronPdf.Linux pour réduire la taille de l'image et éviter les téléchargements de ressources d'exécution. Ce package inclut des binaires natifs Linux pré-empaquetés optimisés pour les environnements conteneurisés.

Définissez LinuxAndDockerDependenciesAutoConfig = false lorsque votre Dockerfile installe déjà les dépendances de bibliothèque partagée de Chrome via apt-get. L'auto-installation à l'exécution est redondante dans ce cas et peut entraîner des erreurs de permission ou des démarrages à froid plus longs.

Plate-forme Emballer Configuration clé
Ubuntu 22.04 / Debian IronPdf.Linux Défaut — fonctionne dès la sortie de la boîte
Alpine Linux IronPdf.Linux Installez Chromium via apk dans le Dockerfile
Amazon Linux 2 IronPdf.Linux Utilisez LinuxAndDockerDependenciesAutoConfig = true
Conteneurs Windows IronPDF Aucune configuration supplémentaire requise


Un Dockerfile multi-stage minimal pour une image basée sur Ubuntu/Debian :

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o /out

FROM mcr.microsoft.com/dotnet/aspnet:8.0
# Install Chrome dependencies for PDF rendering
RUN apt-get update && apt-get install -y \
    libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 \
    libcups2 libdrm2 libxkbcommon0 libxcomposite1 \
    libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 \
    libcairo2 libasound2 libxshmfence1 && \
    rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out .
ENTRYPOINT ["dotnet", "MyApp.dll"]


using IronPDF;

// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
using IronPDF;

// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
Imports IronPDF

' Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
' No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

RELATED GET-STARTED Guide: How to Use IronPDF with Docker

5. Comparer IronPDF avec d'autres bibliothèques PDF .NET

IronPDF est la solution de choix pour de nombreuses équipes en matière de génération PDF en C# grâce à son moteur de rendu basé sur Chromium robuste, ses API intuitives et ses améliorations produit fréquentes. Comparons IronPDF avec d'autres convertisseurs PDF pour trouver la meilleure adaptation à vos besoins de génération PDF.

Matrice de décision rapide : IronPDF par rapport à d'autres convertisseurs PDF .NET

Solution Quand utiliser Meilleur pour
IronPDF Convertir des sites web modernes/HTML en PDF avec une fidélité visuelle exacte. Applications d'entreprise nécessitant un moteur de rendu HTML fiable, un contenu dynamique et une assistance professionnelle.
wkhtmltopdf Conversion HTML simple dans les applications non critiques où un rendu obsolète est acceptable. Génération de documents de base avec les anciens HTML/CSS.
Syncfusion Lorsque déjà investi dans l'écosystème Syncfusion ou éligible à la licence communautaire gratuite. Organisations utilisant plusieurs composants Syncfusion.
Aspose.PDF Manipulation complexe de fichiers PDF lorsque la qualité du rendu HTML est moins critique. Fonctionnalités d'édition PDF étendues au-delà de la conversion HTML.

COMPARAISONS RELIÉES :

Comparaison détaillée : IronPDF par rapport à d'autres convertisseurs PDF .NET

Caractéristique IronPDF recommandé wkhtmltopdf iText 7 Aspose.PDF Syncfusion Apryse SelectPdf Spire.PDF PDFsharp QuestPDF
Rendering & Conversion
Précision du rendu Pixel-Perfect Meilleur Style d'impression Programmatique uniquement Bien Bien Bien Bien Niveau bas Aucun rendu Mise en page axée sur le code
Prise en charge HTML5 Complet Dépassé Ajouter sur Partiel Complet Module Complet Limité Non Non (Code-First)
Prise en charge CSS3 Complet Limité Ajouter sur Partiel Complet Module Complet Limité Non Non (Code-First)
Exécution de JavaScript Meilleur maximum Non Non Contesté Limité Limité Limité Très limité Non Non
HTML→PDF (Mise en page moderne) Meilleur Chromium intégré Qt WebKit (Obsolète) Module complémentaire payant Partiel; JS Contesté Moteur clignotant Module requis HTML complet → PDF Basé sur l'image Non Ce n'est pas un moteur de rendu HTML
PDF → Rendu d'image Oui Non Module séparé Produit séparé Oui Oui Non Limité Non Documents personnels uniquement
Opérations documentaires
Générer des PDF par programmation Oui Non Oui Oui Oui Oui HTML uniquement Oui Basique Oui (API Fluent)
Merge, Split & Rearrange Oui Non Oui Oui Oui Oui Oui Oui Limité Oui
En-têtes / Pieds de page / Numéros de page HTML/Texte/Image Meilleur Limitée Oui Via Events Via Events Oui Modèles Manuel Manuel uniquement Machines à sous de première classe
Watermarks & Stamping Texte et image Non Oui Oui Oui Oui Oui Limité Non Oui (Superpositions)
Extraire du texte des PDFs Oui Non Oui Oui Oui Oui Oui Oui Basique Non
OCR pour les PDF numérisés Via IronOCR intégré Non Ajouter sur Produit séparé Ajouter sur Ajouter sur Non solution de contournement Non Non
Security & Compliance
Signatures numériques Oui Non Oui Oui Oui Exemple de code Oui Non Non Non documenté
Conformité PDF/A Oui (PDF/A-3B) Non PDF complet/A Valider et créer Nécessite le SDK natif Conformité PDFA Non Oui Limité PDF/A-2x et 3x
Plate-forme & Developer Experience
Multiplateforme Windows · Linux · macOS Les 3 Dépend des binaires .NET Standard 2.0 Configuration supplémentaire Linux Blink + Serveur .NET SDK natif Uniquement pour Windows * Documentation Linux limitée Axé sur Windows Windows/Linux/macOS
Cloud & Docker Deploy Azure · AWS · Docker Meilleur Complexe ; Héritage Plusieurs forfaits Partiel ; Conteneurs Extras Blink nécessaires Dépendances natives Compatible uniquement avec Windows Informations limitées Simple ; léger Docker/K8s ; Local
Support & Documentation
Documentation Meilleur copier-coller étendu Documentation partielle de l'interface de ligne de commande Vaste ; KB Large ; GitHub Centre d'aide Catalogue multilingue Guides de démarrage Guide du programme Guides communautaires Application structurée + compagnon
Support des développeurs Ingénieurs disponibles 24h/24 et 7j/7 Communauté uniquement Abonnement inclus Forum + Payant 24/5 Direct-Trac Commercial Email Forum + Courriel Communauté uniquement Communauté + GitHub
Licensing & Pricing
Modèle de licence Perpétuel Source libre AGPL / Abonnement Perpétuel Abonnement annuel Douanes / Consommation Perpétuel Abonnement annuel Gratuit (MIT) Niveaux gratuits et payants du MIT
Prix ​​initial Licence perpétuelle à 799 $ · 1 développeur style="color:#16a34a">Gratuit Devis personnalisé d'environ 45 000 $/an 1 175 $ et plus par développeur Abonnement à 995 $/an · Gratuit pour les clients dont le budget est inférieur à 1 million de dollars Devis personnalisé à partir de 9 000 $ par an 499 $ et plus Perpétuel Abonnement annuel de 999 $ style="color:#16a34a">Gratuit Communauté style="color:#16a34a">gratuite MIT <1M
Essai gratuit 30 jours · Fonctionnalités complètes , sans limites N/A (Gratuit) 30 jours Oui (avec filigrane) Community <$1M Rev Oui Communauté (5 pages) Gratuit (10 pages) N/A (Gratuit) N/A (MIT Free <$1M)
Transparence des prix Publié et clair Meilleur Open Source AGPL complexe Plusieurs niveaux Contactez-nous pour un devis Prix ​​non publié Publié Publié MIT ; Aucune restriction MIT ; Basé sur la confiance

Comparaison de conversion HTML en PDF dans la vie réelle : rendu de la page d'accueil de Reddit

Pour évaluer la qualité du PDF de sortie, nous avons testé ces bibliothèques avec la page d'accueil de Reddit contenant du contenu web dynamique, des CSS modernes, et des éléments HTML JavaScript. Cette page sert de cas de test idéal pour la génération de PDF.

https://www.reddit.com/

Capture d'écran de la page d'accueil de Reddit montrant du contenu dynamique, un style moderne et des éléments interactifs utilisés pour les tests de conversion PDF.

IronPDF

 Résultat de la conversion IronPDF montrant un rendu pixel perfect de la page d'accueil de Reddit avec tout le contenu dynamique, le style et les éléments interactifs préservés

IronPDF fournit des résultats parfaits, préservant tout le contenu web dynamique, le style des polices modernes et les éléments interactifs exactement comme affichés dans Chrome, le tout en seulement quelques lignes de code.

Syncfusion

 Conversion PDF Syncfusion montrant un rendu partiel avec des sections manquantes et une mise en forme incomplète de la page d'accueil de Reddit

Syncfusion a rendu le PDF avec la plupart des sections et des styles manquants, en particulier le contenu dynamique. Initialement bloqué par la sécurité de Reddit. Obtenir de meilleurs résultats nécessite un réglage approfondi de la ligne de commande, mais la sortie reste incomplète.

Aspose.PDF

Tentative de conversion Aspose.PDF montrant une capture de contenu minimale, la plupart des éléments de la page d'accueil de Reddit étant manquants

Aspose.PDF a nécessité un téléchargement manuel de l'HTML d'abord (pas de support direct d'URL). Après conversion, la sortie manquait de mise en forme correcte et manquait pratiquement toutes les sections de contenu, ce qui la rendait inadaptée pour le web moderne avec du contenu dynamique.

wkhtmltopdf

wkhtmltopdf affiche une version statique et non stylisée de la page d'accueil de Reddit, sans éléments dynamiques ni CSS moderne

wkhtmltopdf a terminé rapidement mais a produit une page simple et statique manquant de contenu critique comme les mises à jour en direct, les éléments dynamiques, et les sections interactives. Ceci démontre l'incompatibilité de wkhtmltopdf avec les sites modernes pilotés par JavaScript.

Conclusion sur la performance et la qualité de sortie PDF

Pour les développeurs .NET ayant besoin d'un convertisseur HTML en PDF fiable, IronPDF se démarque avec un code minimal, des API faciles à utiliser, et des améliorations fréquentes du produit.

Dans un test réel sur du contenu web, il a fourni les résultats les plus rapides et les plus précis tandis que Syncfusion était à la traîne, Aspose nécessitait des étapes supplémentaires, et wkhtmltopdf manquait de style moderne. IronPDF offre le meilleur équilibre entre vitesse, précision et simplicité pour les flux de travail de conversion HTML en PDF d'aujourd'hui.

Veuillez noter : Aspose, SyncFusion, et wkhtmltopdf sont des marques déposées de leurs propriétaires respectifs. Ce site n'est pas affilié ou approuvé par eux. Tous les noms, logos, et marques appartiennent à leurs propriétaires, et les comparaisons sont basées sur des informations publiquement disponibles au moment de l'écriture.

Résumé

Ce guide a couvert tout ce qu'il fallait pour convertir HTML en PDF dans .NET : de la conversion de chaîne de base aux fonctionnalités avancées comme le traitement asynchrone, les signatures numériques, et la génération par lot. Nous avons démontré trois méthodes de conversion, des configurations essentielles, des fonctionnalités avancées et des paramètres de sécurité, et comparé IronPDF avec d'autres bibliothèques à travers des tests réels de génération de documents dynamiques.

Tandis que les concurrents ont eu des difficultés avec les sites modernes ou ont nécessité des solutions complexes, IronPDF a fourni des résultats impeccables avec un code minimal et un moteur de rendu puissant.

Prêt à simplifier votre flux de travail PDF et à expérimenter une génération de PDF polyvalente en seulement quelques lignes de code ? Installez IronPDF via le Emballer Manager NuGet (ou sélectionnez Gérer NuGet Emballer dans Visual Studio) et convertissez votre premier HTML en PDF aujourd'hui.

Commencez votre essai gratuit de 30 jours pour des tests de production sans filigranes. Les licences flexibles commencent à $799 avec une tarification d'équipe transparente qui évolue en fonction de vos besoins.

Voir les licences IronPDF

6. Dépannage & Support technique

Avez-vous des difficultés avec les erreurs suivantes lors de la conversion HTML en PDF ? IronPDF offre un support ingénieur 24/7 via le widget de chat sur https://ironpdf.com/

Solutions rapides aux erreurs courantes

  • Rendu lent au premier? Normal. Chrome s'initialise en 2–3 s, puis accélère.
  • Problèmes de cloud? Utilisez au moins Azure B1 ou équivalent.
  • Ressources manquantes? Définissez des chemins de base ou intégrez sous forme de base64.
  • Éléments manquants? Ajoutez RenderDelay pour l'exécution de JavaScript.
  • Mémoire dans le rendu ? Mettez à jour vers v2025.9.4 pour des correctifs dans HTML en PDF, tampons, et en-têtes/pieds de page.
  • Problèmes de champ de formulaire (par exemple, longues zones de texte, cases à cocher)? Corrigé en v2025.7.17 ; assurez-vous que les cases ont des noms uniques.
  • Coupures d'en-tête/pied de page personnalisés ou caractères spéciaux corrompus? Résolu en v2025.8.8 ; testez le retour à la ligne et les métadonnées.

Obtenez de l'aide des ingénieurs qui ont développé IronPDF, 24/7

Prochaines étapes

Comment fusionner ou diviser des documents PDF
Voir les guides pratiques
Comment ajouter des en-têtes et des pieds de page personnalisés aux fichiers PDF
Voir les guides pratiques
Comment expurger du texte et des régions dans un PDF
Voir les guides pratiques

Questions Fréquemment Posées

Comment convertir du HTML en PDF en C# ?

Vous pouvez convertir du HTML en PDF en C# à l'aide d'une bibliothèque de rendu Chrome qui transforme le HTML, le CSS3 et le JavaScript en PDF parfaits au pixel près. Des outils comme IronPDF vous permettent d'effectuer le rendu à partir d'URL, de chaînes HTML ou de fichiers, tout en prenant en charge les en-têtes, l'authentification et les paramètres d'impression.

Quelle est la meilleure bibliothèque HTML vers PDF for .NET ?

La meilleure bibliothèque devrait prendre en charge le rendu précis de Chrome, le déploiement multiplateforme et les fonctionnalités d'entreprise. IronPDF couvre tous ces éléments — fonctionnant sur Windows, Linux, macOS et Docker, avec prise en charge de la sécurité, des signatures, de la conformité et des applications .NET évolutives.

Comment puis-je convertir des chaînes HTML en PDF en utilisant C# ?

Pour convertir des chaînes HTML en PDF, utilisez la classe ChromePdfRenderer et sa méthode RenderHtmlAsPdf. Passez votre chaîne HTML à cette méthode, puis enregistrez le PDF en utilisant SaveAs.

Quelles sont les étapes pour convertir une URL de page web en document PDF en C# ?

Vous pouvez convertir directement une URL de page web en PDF en utilisant la méthode RenderUrlAsPdf, qui vous permet de préserver la mise en forme, les images et les éléments interactifs tels que les formulaires et les hyperliens.

Comment convertir un fichier HTML en PDF en C# ?

Utilisez ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html") pour convertir les fichiers HTML locaux en PDF. IronPDF résout automatiquement tous les chemins d'accès relatifs aux ressources (images, CSS, JS).

Comment convertir les Razor Pages ASP.NET ou les vues MVC en PDF ?

IronPDF propose des packages d'extension dédiés — IronPdf.Extensions.Razor pour Razor Pages et IronPdf.Extensions.Mvc.Core pour les vues MVC. Utilisez RenderRazorToPdf ou RenderRazorViewToPdf avec l'injection de dépendances pour convertir directement les vues en PDF depuis vos contrôleurs. Voir le guide Razor →

Comment puis-je m'assurer que le contenu JavaScript est correctement rendu dans le PDF ?

Activez le rendu JavaScript en définissant RenderingOptions.EnableJavaScript = true et ajoutez un délai de rendu en utilisant RenderingOptions.WaitFor.RenderDelay pour vous assurer que le contenu dynamique est entièrement chargé avant la conversion. Voir le guide WaitFor →

Quelle est la meilleure méthode pour ajouter des en-têtes et pieds de page à un PDF en C# ?

Utilisez la classe TextHeaderFooter pour des en-têtes et pieds de page simples, ou la classe HtmlHeaderFooter pour un contenu HTML plus complexe. Vous pouvez inclure des espaces réservés dynamiques tels que {page}, {total-pages}, et {date} pour une génération automatique de contenu. Voir le guide des en-têtes et pieds de page →

Comment gérer les sauts de page dans la sortie PDF en C# .NET ?

Contrôlez les sauts de page dans vos PDF en utilisant des propriétés CSS telles que page-break-after: always et page-break-inside: avoid dans un bloc CSS de type média d'impression. Voir le guide des sauts de page →

Quelles options sont disponibles pour définir la taille et l'orientation du papier dans les PDFs ?

Définissez la taille du papier en utilisant RenderingOptions.PaperSize (les options incluent A4, Lettre, Légal, etc.) et l'orientation avec RenderingOptions.PaperOrientation pour Portrait ou Paysage. Les tailles personnalisées en millimètres ou en pouces sont également prises en charge. Voir le guide des tailles de papier →

Puis-je convertir des pages Web authentifiées en PDF ?

Oui. IronPDF prend en charge les cookies, les en-têtes HTTP personnalisés, et l'authentification basée sur les formulaires. Définissez les cookies via ChromePdfRenderer.RenderingOptions.CustomCookies, ou passez des en-têtes d'authentification pour l'authentification basée sur des jetons. L'authentification Windows NTLM et Kerberos est également prise en charge. Voir le guide des cookies →

Puis-je créer plusieurs PDFs à partir d'un seul modèle HTML en C# ?

Oui, créez des modèles HTML avec des espaces réservés, puis utilisez la substitution de chaînes ou des bibliothèques de templating comme Handlebars.NET. Remplacez les espaces réservés par des valeurs réelles dans vos données bouclées, et générez des PDFs en utilisant RenderHtmlAsPdf.

Est-il possible de sécuriser mes PDFs générés avec un mot de passe ?

Oui, vous pouvez utiliser la propriété SecuritySettings pour définir des mots de passe utilisateur et propriétaire, configurer des permissions comme l'impression et la copie, et appliquer le cryptage AES256 avec SecuritySettings.EncryptionAlgorithm. Voir le guide de cryptage →

Puis-je générer des documents conformes à PDF/A à partir de HTML ?

Oui. IronPDF prend en charge les normes PDF/A-1b, PDF/A-2b, PDF/A-3b et PDF/UA pour la conformité d'archivage et d'accessibilité, que la plupart des convertisseurs HTML en PDF ne proposent pas. Voir le guide PDF/A →

Comment puis-je optimiser les performances pour la génération d'un grand volume de PDFs ?

Optimisez les performances en utilisant des méthodes asynchrones comme RenderHtmlAsPdfAsync pour des opérations non bloquantes. Réutilisez les instances ChromePdfRenderer, traitez plusieurs PDF simultanément en utilisant Task.WhenAll, et assurez-vous que vous avez des ressources serveur adéquates sur un système 64 bits. Voir le guide async →

Comment puis-je fusionner plusieurs PDFs ou inclure une page de garde dans mon document ?

Utilisez la méthode statique PdfDocument.Merge pour combiner plusieurs PDF. Générez votre page de couverture séparément et fusionnez-la avec votre document principal pour créer un PDF complet. Voir le guide de fusion →

Puis-je déployer IronPDF sur Azure, AWS, ou Docker ?

Oui. IronPDF fonctionne sur Azure App Service, Azure Functions, AWS Lambda, et les conteneurs Docker sur Linux. Des guides de configuration dédiés et des images Docker sont disponibles pour chaque plateforme. Voir le guide Azure → · Voir le guide AWS → · Voir le guide Docker →

Compatibilité .NET 10 : IronPDF prend-il immédiatement en charge .NET 10 ?

Oui — IronPDF est entièrement compatible avec .NET 10. Selon les notes de version d'IronPDF, la bibliothèque est prête dès le premier jour pour les projets .NET 10, sans configuration supplémentaire. Que vous utilisiez des applications web, console, desktop, ou microservices, IronPDF fonctionne "prêt à l'emploi" avec .NET 10.

IronPDF est-il gratuit ?

IronPDF offre un essai gratuit de 30 jours avec toutes les fonctionnalités et aucun filigrane en développement. L'utilisation en production nécessite une licence commerciale à partir de 749 $. Les niveaux Lite, Plus, Professional, et Enterprise sont disponibles. Voir les tarifs →

Comment la qualité de rendu de cette bibliothèque se compare-t-elle à d'autres options comme wkhtmltopdf ?

Cette bibliothèque utilise un moteur de rendu Chrome moderne pour des PDFs parfaits au pixel près, contrairement au moteur WebKit obsolète de wkhtmltopdf. Elle ne nécessite pas d'exécutables serveur, prend en charge JavaScript/CSS3 complet, bénéficie de mises à jour régulières et offre un support professionnel.

Pourquoi devrais-je choisir cette bibliothèque plutôt que PDFSharp pour la conversion HTML en PDF ?

PDFSharp manque de conversion HTML en PDF intégrée, nécessitant des solutions complexes. Cette bibliothèque offre une conversion directe HTML/URL/fichier avec une API de haut niveau, la prise en charge des technologies web modernes, et des mises à jour régulières avec un support professionnel. Voir la comparaison PDFSharp →

Qu'est-ce qui fait de ce choix une meilleure option qu'iTextSharp pour la conversion HTML ?

La version gratuite d'iTextSharp ne prend pas en charge la conversion native de HTML en PDF et possède une API bas niveau complexe. Cette bibliothèque offre une conversion HTML fluide avec une API intuitive, une prise en charge complète de CSS3/JavaScript, et aucune restriction de licence AGPL. Voir la comparaison iTextSharp →

Comment la qualité de rendu de cette bibliothèque se compare-t-elle à Aspose.PDF ?

Cette bibliothèque produit des PDF de qualité Chrome pixel perfect, alors qu'Aspose.PDF manque souvent de style et de contenu dynamique. Aspose nécessite des téléchargements HTML manuels pour la conversion d'URL, mais cette bibliothèque convertit directement les URLs avec une précision supérieure. Voir la comparaison Aspose →

Pourquoi pourrais-je choisir cette bibliothèque plutôt que Syncfusion PDF ?

Bien que Syncfusion soit capable, le moteur optimisé Chrome de cette bibliothèque fonctionne plus rapidement et gère plus efficacement le contenu dynamique. Elle offre une API plus simple et des fonctions supplémentaires comme la génération OCR et de code-barres. Voir la comparaison Syncfusion →

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 18,332,619 | Version : 2026.4 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPdf
exécuter un échantillon Regardez votre code HTML se transformer en PDF.