Passer au contenu du pied de page
UTILISATION DE IRONPDF

HtmlToPdfDocument C# - Alternative à DinkToPdf | IronPDF

Si vous travaillez avec HtmlToPdfDocument C# dans DinkToPdf et que vous rencontrez une prise en charge CSS limitée, des dépendances externes ou des problèmes de performance, vous n'êtes pas seul. De nombreux développeurs .NET recherchent un convertisseur HTML en PDF capable de gérer les CSS modernes, les polices web et l'exécution de JavaScript sans installation de bibliothèques natives ou d'outils en ligne de commande. Ce guide vous montre comment remplacer DinkToPdf par IronPDF -- une bibliothèque .NET avec un moteur de rendu basé sur Chromium qui convertit les fichiers HTML, les pages web et les chaînes HTML en PDF de haute qualité en seulement quelques lignes de code.

  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("<h1>Hello World</h1>")
           .SaveAs("output.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

Comment installer IronPDF via NuGet ?

Avant d'écrire du code de conversion, vous devez ajouter IronPDF à votre projet. Le chemin le plus rapide est l'interface de ligne de commande du gestionnaire de packages NuGet :

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

Alternativement, ouvrez la console du gestionnaire de packages NuGet dans Visual Studio et exécutez :

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPDF cible .NET 8, .NET 9, .NET 10, .NET Standard 2.0 et .NET Framework 4.6.2 ou supérieur. Aucun binaire natif supplémentaire, installation de wkhtmltopdf ou configuration d'outils en ligne de commande n'est requis. Le paquet contient le moteur de rendu Chromium et résout toutes les dépendances automatiquement. Une fois installé, vous pouvez définir votre clé de licence dans le code ou via une variable d'environnement et commencer à générer des PDF immédiatement. Pour des conseils d'installation détaillés, la page de démarrage rapide IronPDF guide chaque environnement.

Comment DinkToPdf se compare-t-il à IronPDF?

DinkToPdf est un wrapper .NET Core pour wkhtmltopdf, utilisant l'ancien moteur de rendu WebKit. Bien qu'open-source, les développeurs rencontrent souvent des défis lors de la conversion de HTML en PDF dans des environnements de production.

Comparaison des fonctionnalités entre DinkToPdf et IronPDF
Caractéristique DinkToPdf IronPDF
Moteur de rendu WebKit (dépassé) Chromium (moderne)
Support CSS Prise en charge limitée des CSS CSS3 complet, CSS moderne
Exécution de JavaScript Limitée Rendu complet du JavaScript
Dépendances natives Nécessite des binaires wkhtmltopdf Aucune dépendance externe
Polices Web Partiel Assistance complète
.NET Core / .NET 5+ Oui Oui (.NET Core, Framework, Standard)
Service d'application Azure Configuration complexe Fonctionne dès l'installation
Threading Singleton requis Thread-safe
Modèles HTML De base Fonctionnalités avancées
Formulaires PDF remplissables Non Oui

La principale différence réside dans le moteur de rendu. Le moteur WebKit de DinkToPdf a du mal à gérer les documents complexes, les feuilles de style CSS modernes et les contenus web dynamiques. Le moteur Chromium d'IronPDF produit des documents PDF qui correspondent exactement à ce qu'un navigateur rend. Pour une analyse plus approfondie, consultez la page de comparaison IronPDF vs DinkToPdf.

Quels sont les problèmes posés par la classe HtmlToPdfDocument de DinkToPdf ?

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 1 - DinkToPdf

La classe HtmlToPdfDocument dans DinkToPdf nécessite une configuration verbeuse avec des limitations qui affectent la qualité de la conversion PDF et l'expérience des développeurs :

using DinkToPdf;

var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);
using DinkToPdf;

var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);
$vbLabelText   $csharpLabel

Sortie PDF DinkToPdf

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 2 - exemple de sortie PDF DinkToPdf

Les problèmes courants incluent : une génération de PDF lente même pour des tâches simples, des complications de threading sur des serveurs web, et des difficultés à gérer le contenu web avec JavaScript. L'outil en ligne de commande wkhtmltopdf crée des défis de déploiement pour Service d'application Azure et les environnements sans serveur où vous ne pouvez pas installer de binaires au niveau système. Les développeurs rapportent également que le modèle de convertisseur singleton devient un goulot d'étranglement sous une charge concurrente.

Au-delà des performances, le projet DinkToPdf sur GitHub montre une activité de maintenance limitée, ce qui signifie que les bugs dans le rendu CSS ou le traitement SSL reçoivent rarement des correctifs. Pour les applications de production qui traitent des milliers de PDF quotidiennement, ces lacunes ne sont pas acceptables. Lorsque la grille CSS se casse ou que la police web ne se charge pas, vous avez besoin d'une bibliothèque qui suit le comportement des navigateurs modernes, pas d'une qui est figée dans le temps avec un moteur de rendu du début des années 2010.

Comment convertir une chaîne HTML en PDF avec IronPDF ?

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 3 - IronPDF

IronPDF simplifie la conversion HTML en PDF avec une API plus propre et une qualité de sortie supérieure. Le ChromePdfRenderer gère tout le contenu HTML -- d'une simple chaîne HTML à des pages HTML complexes avec des feuilles de style externes, des Google Fonts et des dispositions pilotées par JavaScript.

using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-size: 14px; text-align: center; }
            h1 { color: #2563eb; }
        </style>
    </head>
    <body>
        <h1>Professional Invoice</h1>
        <p>Generated with modern CSS support</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-size: 14px; text-align: center; }
            h1 { color: #2563eb; }
        </style>
    </head>
    <body>
        <h1>Professional Invoice</h1>
        <p>Generated with modern CSS support</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");
$vbLabelText   $csharpLabel

Sortie de chaîne HTML avec IronPDF

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 4 - exemple de sortie simple de chaîne HTML en PDF avec IronPDF

Ce code démontre comment IronPDF traite le HTML et le CSS lors de la conversion, produisant des documents PDF avec un rendu de taille de police approprié et un alignement du texte -- le tout sans dépendances externes. La méthode RenderHtmlAsPdf accepte toute chaîne HTML5 valide, y compris les styles en ligne, les scripts intégrés et les URI de données pour les images.

Comment convertir un fichier HTML en PDF ?

Pour convertir des fichiers HTML stockés sur disque :

using IronPdf;

var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");
$vbLabelText   $csharpLabel

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 5 - Exemple de sortie pour fichier HTML en PDF

La méthode RenderHtmlFileAsPdf résout les chemins relatifs pour les images, les feuilles de style et les scripts par rapport à l'emplacement du fichier HTML sur le disque, de sorte que les modèles existants fonctionnent sans modification. Cela rend la migration des modèles de rapport existants simple.

Comment convertir l'URL d'une page web en PDF?

La conversion de contenu web en direct est là où IronPDF excelle par rapport au rendu JavaScript limité de DinkToPdf. Le moteur Chromium d'IronPDF prend en charge les éléments HTML dynamiques, les applications monopages et les formulaires interactifs.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");
$vbLabelText   $csharpLabel

L'URL convertie en PDF

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 6 - PDF rendu à partir du contenu URL

Cette approche est idéale pour générer des factures à partir de formulaires web ou archiver des tableaux de bord en direct. Le moteur de rendu traite toutes les polices web, les styles CSS et le JavaScript avant de produire le fichier PDF. L'API WaitFor vous donne un contrôle précis sur le moment où le moteur Chromium considère qu'une page est prête pour la capture -- vous pouvez attendre des éléments DOM spécifiques, des états d'inactivité réseau, ou des conditions JavaScript personnalisées, ce qui est essentiel pour la génération de PDF à grande échelle à partir de contenu dynamique.

Pour les pages authentifiées, vous pouvez transmettre des en-têtes HTTP, des cookies ou des données de formulaire POST directement au moteur de rendu. La documentation de l'URL vers PDF couvre ces scénarios avancés en détail.

Comment configurer les paramètres de sortie des PDF?

Les deux bibliothèques offrent des options de configuration, mais IronPDF offre un contrôle plus intuitif sur le PDF généré grâce à son objet RenderingOptions :

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";

var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";

var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");
$vbLabelText   $csharpLabel

Sortie PDF avec paramètres personnalisés

HtmlToPdfDocument C#: DinkToPdf Alternative pour la conversion de HTML en PDF : Image 7 - Sortie PDF personnalisée

Ces options contrôlent la taille du papier, les marges, les en-têtes et les pieds de page. IronPDF prend également en charge les en-têtes et pieds de page HTML personnalisés qui acceptent le HTML et le CSS complets, vous permettant de placer des logos, des comptes de pages dynamiques et du texte stylisé dans les zones d'en-tête et de pied de page. Pour la sécurité des documents, l'API d'encryptage et de mots de passe PDF vous permet de restreindre l'impression, la copie ou l'édition après la génération.

Comment fusionner plusieurs PDF ?

Lorsque vous devez combiner plusieurs documents HTML en un seul PDF, IronPDF fournit une méthode de fusion statique :

using IronPdf;

var renderer = new ChromePdfRenderer();

var pdf1 = renderer.RenderHtmlAsPdf("<h1>Section One</h1>");
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Section Two</h1>");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

var pdf1 = renderer.RenderHtmlAsPdf("<h1>Section One</h1>");
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Section Two</h1>");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged-report.pdf");
$vbLabelText   $csharpLabel

La documentation de fusion PDF montre comment assembler de grands documents à partir de nombreux fichiers sources, appliquer des en-têtes et pieds de page cohérents à toutes les sections, et réorganiser les pages de manière programmatique. Cela est utile pour les pipelines de génération de rapports qui construisent indépendamment des sections individuelles avant de les combiner dans un document final unique.

Pourquoi passer de DinkToPdf à IronPDF?

Pour les développeurs utilisant HtmlToPdfDocument dans les applications .NET Core, IronPDF offre des avantages clés qui répondent directement à chaque point douloureux :

  • Rendu moderne : Le moteur Chromium gère la structure HTML, les CSS modernes et l'exécution JavaScript pour créer des documents PDF parfaitement pixelisés
  • Aucune configuration : Pas de binaires wkhtmltopdf ou de configuration d'outil en ligne de commande -- il suffit d'ajouter le package NuGet
  • Meilleure performance : Conversion PDF plus rapide sans limitations de threading singleton ; le moteur de rendu est thread-safe et peut exécuter des conversions concurrentes
  • Support web complet : Convertir HTML avec des polices web, des animations CSS, des graphiques SVG et des modèles HTML complexes
  • Déploiement entreprise : Déployez sur Service d'application Azure, AWS Lambda, des conteneurs Docker et des serveurs web traditionnels sans configuration supplémentaire
  • Fonctionnalités PDF avancées : Formulaires PDF remplissables, signatures numériques, conformité PDF/A et filigranes
  • Maintenance active : IronPDF publie des mises à jour régulières suivant les dernières versions de Chromium et les runtimes .NET

Selon le calendrier des versions du projet Chromium, le moteur reçoit des correctifs de sécurité toutes les quatre semaines. IronPDF intègre des versions mises à jour de Chromium à chaque version majeure, garantissant que votre génération de PDF reste à jour sans gestion manuelle des binaires. Ceci est important pour les équipes soucieuses de la sécurité qui ont besoin de démontrer que leurs dépendances sont corrigées contre les vulnérabilités connues.

La bibliothèque de documentation IronPDF couvre plus de 50 guides pratiques pour des tâches allant de la division des PDF à l'extraction de texte et l'ajout d'annotations.

Quelles sont vos prochaines étapes ?

Bien que la classe HtmlToPdfDocument de DinkToPdf offre une conversion HTML en PDF de base, son moteur WebKit dépassé et ses dépendances externes créent des frictions pour le développement moderne .NET. IronPDF offre de meilleurs résultats avec un rendu basé sur Chromium, un support CSS complet et un déploiement sans dépendances. Que vous construisiez un petit outil de rapport interne ou un service de génération de documents à haut volume, le chemin de migration est simple : installez le package NuGet, remplacez les appels d'API DinkToPdf par des équivalents ChromePdfRenderer, et retirez les binaires wkhtmltopdf de votre pipeline de déploiement.

Pour aller de l'avant, choisissez le chemin qui correspond à votre situation :

  • Essayez maintenant : Commencez un essai gratuit d'IronPDF pour générer des documents PDF à partir de tout contenu HTML sans engagement
  • Comparez en profondeur : Lisez la comparaison IronPDF vs DinkToPdf pour une analyse technique complète
  • Explorez les fonctionnalités : Parcourez la documentation IronPDF pour voir les capacités au-delà de la conversion HTML en PDF
  • Consultez les licences : Consultez la page de licences IronPDF pour des options adaptées aux développeurs individuels, aux équipes et aux déploiements en entreprise
  • Obtenez le support de la communauté : La page de support IronPDF fournit un accès au support technique et aux ressources communautaires

Commencez avec IronPDF maintenant.
green arrow pointer

Questions Fréquemment Posées

Qu'est-ce que IronPDF ?

IronPDF est une bibliothèque .NET pour convertir HTML en PDF en utilisant un moteur de rendu Chromium. Elle prend en charge les CSS modernes, l'exécution de JavaScript et les polices web, et ne nécessite aucune dépendance native ou binaire externe.

Pourquoi devrais-je choisir IronPDF plutôt que DinkToPdf ?

IronPDF offre un support complet de CSS3, pas de configuration de bibliothèque native ou wkhtmltopdf, des conversions simultanées sécurisées, et un déploiement facile sur Azure App Service et Docker -- répondant à tous les principaux problèmes de DinkToPdf.

Comment IronPDF améliore-t-il les performances de la conversion de HTML en PDF ?

IronPDF utilise un moteur de rendu Chromium qui traite efficacement HTML, CSS et JavaScript. Son design sécurisé par thread élimine le goulet d'étranglement de singleton qui affecte DinkToPdf sous charge simultanée.

IronPDF prend-il en charge les polices web modernes ?

Oui. Le moteur Chromium d'IronPDF prend en charge pleinement les polices Google, les polices système et les polices web personnalisées intégrées dans HTML, produisant un rendu précis des polices dans le PDF en sortie.

IronPDF peut-il exécuter du JavaScript lors de la conversion en PDF ?

Oui. Réglez EnableJavaScript sur true dans RenderingOptions et utilisez l'API WaitFor pour contrôler le moment où Chromium considère la page prête, s'assurant que le contenu dynamique est entièrement rendu avant la capture.

Quelles sont les dépendances nécessaires à l'utilisation d'IronPDF ?

IronPDF ne nécessite aucune dépendance native. Installez-le via NuGet et le package gère le moteur Chromium en interne. Aucun binaire wkhtmltopdf ou outil en ligne de commande n'est nécessaire.

La prise en charge complète des feuilles de style CSS est-elle disponible dans IronPDF ?

Oui. IronPDF prend en charge CSS3, Flexbox, CSS Grid, les propriétés personnalisées, et les requêtes multimédia, permettant un rendu précis des documents HTML complexes.

Comment IronPDF gère-t-il les bibliothèques ou outils externes ?

IronPDF ne repose pas sur des bibliothèques externes ou des outils en ligne de commande. Tout est inclus dans le package NuGet, simplifiant le déploiement et éliminant les problèmes de compatibilité.

Quel moteur de rendu utilise IronPDF ?

IronPDF utilise un moteur de rendu basé sur Chromium, le même moteur qui alimente Google Chrome, offrant des conversions HTML en PDF précises et performantes.

IronPDF convient-il aux développeurs .NET à la recherche d'une solution de conversion de HTML en PDF ?

Oui. IronPDF cible .NET 8, .NET 9, .NET 10, .NET Standard 2.0 et .NET Framework 4.6.2 ou supérieur, le rendant adapté aux applications .NET modernes et héritées.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me