# HTML vers PDF en C# .NET
En tant que développeurs d'IronPDF, nous savons à quel point il est important que la conversion HTML en PDF produise des résultats précis et de haute qualité qui répondent aux attentes des clients. Ce tutoriel C# vous guidera dans la création d'un convertisseur HTML en PDF pour vos applications, projets et sites web. Nous développerons un convertisseur HTML en PDF en C#, et les documents PDF générés par IronPDF seront identiques aux PDF générés par le navigateur web Google Chrome.
```cs
:title=Get started making PDFs now!
IronPdf.ChromePdfRenderer
.StaticRenderHtmlAsPdf("<p>Hello World</p>")
.SaveAs("pixelperfect.pdf");
```
<hr class="separator" />
<p class="main-content__segment-title">Aperçu</p>
<div class="hsg-featured-snippet">
<h2>Comment convertir HTML en PDF en C#</h2>
<img class="featured-snippet__image featured-snippet__image--float-right featured-snippet__image--html-pdf" src="/static-assets/pdf/images/html-to-pdf-converter-in-csharp.png" alt="Comment convertir HTML en PDF en C#" />
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronPdf/">Téléchargez et installez la bibliothèque HTML en PDF C#</a></li>
<li><a href="#anchor-create-a-pdf-with-an-html-string-in-c-net">Créez un PDF avec une chaîne HTML</a></li>
<li><a href="#anchor-create-a-pdf-with-an-html-string-in-c-net">Utilisez la méthode RenderHtmlAsPdf pour convertir une chaîne HTML en PDF</a></li>
<li><a href="#anchor-export-a-pdf-using-existing-url">Exportez un PDF en utilisant une URL existante</a></li>
<li><a href="#anchor-generate-a-pdf-from-a-html-page">Générez un PDF à partir d'une page HTML</a></li>
<li><a href="#anchor-add-custom-headers-and-footers">Ajoutez des en-têtes et pieds de page personnalisés</a></li>
<li>Appelez SaveAs pour enregistrer le fichier PDF sur l'ordinateur</li>
<li><a href="#anchor-c-html-to-pdf-conversion-settings">Plus</a></li>
</ol>
</div>
<br class="main-article__clear-both" />
## Convertisseur HTML en PDF pour C# & VB.NET
Créer des fichiers PDF par programmation en .NET peut être une tâche frustrante. Le format de fichier de document PDF a été conçu davantage pour les imprimantes que pour les développeurs. Et C# n'a pas beaucoup de bibliothèques ou de fonctionnalités intégrées adaptées à la génération de PDF, de nombreuses bibliothèques nécessitent une configuration supplémentaire et causent encore plus de frustration lorsqu'elles nécessitent plusieurs lignes de code pour accomplir une tâche simple.
L'outil de conversion HTML en PDF C# que nous utiliserons dans ce tutoriel est IronPDF par Iron Software, une bibliothèque de génération et d'édition de PDF C# très populaire. Cette bibliothèque dispose de toutes les fonctionnalités d'édition et de génération de PDF, fonctionne immédiatement, fait exactement ce dont vous avez besoin avec le moins de lignes possible, et dispose d'une [documentation exceptionnelle de ses 50+ fonctionnalités](/features/). IronPDF se distingue par le fait qu'il prend en charge **.NET 10, .NET 9, .NET 8, .NET 7, .NET 6, et .NET 5**, .NET Core, .NET Standard, et .NET Framework sur Windows, macOS, Linux, Docker, Azure, et AWS.
Avec C# et IronPDF, la logique pour "<a href="/how-to/create-new-pdfs/">générer un document PDF</a>" ou "<a href="/examples/using-html-to-create-a-pdf/">conversion HTML en PDF</a>" est simple. Grâce au moteur de rendu avancé de Chrome d'IronPDF, la plupart ou la totalité de la conception et de la mise en page du document PDF utiliseront des ressources HTML existantes.
Cette méthode de génération dynamique de PDF en .NET avec HTML5 fonctionne tout aussi bien dans les applications console, les applications Windows Forms, WPF, ainsi que les sites web et MVC.
**IronPDF prend également en charge le débogage de votre HTML avec Chrome pour des PDF Pixel Perfect. Un tutoriel pour configurer cela peut être trouvé <a href="/how-to/pixel-perfect-html-to-pdf/">ici</a>.**
IronPDF est disponible dans plusieurs langues, à la fois à l'intérieur et à l'extérieur de l'écosystème .NET.
- [Guide F#](/get-started/fsharp-pdf-library-html-to-pdf/)
- [Guide VB.NET](/get-started/vb-net-pdf/)
- [Python](/python/tutorials/html-to-pdf/)
- [Java](/java/tutorials/html-to-pdf/)
- [Node.js](/nodejs/tutorials/html-to-pdf/)
IronPDF est gratuit pour le développement ; une clé de licence est nécessaire pour déployer en direct et pour supprimer le filigrane d'essai. Vous pouvez [acheter une licence ici](/licensing/) ou vous inscrire pour une <a class='js-modal-open' data-modal-id='trial-license'>clé d'essai gratuite de 30 jours ici</a>.
<hr class="separator" />
<p class="main-content__segment-title">Étape 1</p>
## Téléchargez et installez la bibliothèque HTML en PDF C#
### Visual Studio - Gestionnaire de packages NuGet
Dans Visual Studio, cliquez avec le bouton droit sur votre explorateur de solutions de projet et sélectionnez "Gérer les packages NuGet...". De là, recherchez simplement IronPDF et installez la dernière version dans votre solution... cliquez sur OK pour toutes les boîtes de dialogue qui apparaissent. Cela fonctionnera également tout aussi bien dans les projets VB.NET.
```shell
:ProductInstall
```
### IronPDF sur le site NuGet
Pour un aperçu complet des fonctionnalités, de la compatibilité et des téléchargements d'IronPDF, veuillez consulter IronPDF sur le site officiel de NuGet : <a class="js-modal-open" href="https://www.nuget.org/packages/IronPdf" target="_blank" data-modal-id="trial-license-after-download">https://www.nuget.org/packages/IronPdf</a>
### Installation via DLL
Une autre option consiste à installer directement le DLL IronPDF. IronPDF peut être téléchargé et installé manuellement dans le projet ou le GAC depuis <a class="js-modal-open" href="/packages/IronPdf.zip" data-modal-id="trial-license-after-download">https://ironpdf.com/packages/IronPdf.zip</a>
<hr class="separator" />
<p class="main-content__segment-title">Tutoriels pratiques</p>
## Créez un PDF avec une chaîne HTML en C# .NET
**Comment : Convertir une chaîne HTML en PDF ?** C'est une compétence très efficace et gratifiante de *créer un nouveau fichier PDF en C#*.
Nous pouvons simplement utiliser la méthode [ChromePdfRenderer.RenderHtmlAsPdf](/object-reference/api/IronPdf.ChromePdfRenderer.html) pour transformer n'importe quelle chaîne HTML (HTML5) en PDF. **Le rendu HTML en PDF en C#** est effectué par une version entièrement fonctionnelle du moteur Google Chromium qui est livré avec le package NuGet IronPDF.
```csharp
using IronPdf;
// ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engine
var renderer = new ChromePdfRenderer();
// Render an HTML string. The result is a PdfDocument held in memory
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Write the PDF to disk
pdf.SaveAs("pixel-perfect.pdf");
```
`RenderHtmlAsPdf` prend entièrement en charge HTML5, CSS3, JavaScript et les images. Si ces ressources sont sur un disque dur, nous pouvons vouloir définir le deuxième paramètre de `RenderHtmlAsPdf` sur le répertoire contenant les ressources. Cette méthode renvoie un objet **PdfDocument**, qui est une classe utilisée pour contenir des informations PDF.
### IronPDF rendra votre HTML exactement comme il apparaît dans Chrome
Nous avons un tutoriel complet dédié à vous permettre de configurer Chrome pour un débogage HTML complet afin de vous assurer que les modifications que vous voyez lors de l'édition de votre HTML, CSS et JavaScript sont exactement les mêmes que le PDF de sortie d'IronPDF lorsque vous choisissez de rendre. Veuillez trouver le tutoriel ici : [Comment déboguer HTML dans Chrome pour créer des PDF Pixel Perfect](/how-to/pixel-perfect-html-to-pdf/).
**Chemin URL de base** (l'argument `BaseUrlOrPath`) :
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// The second argument is the base path. Relative URLs in the HTML (the image
// below, but also stylesheets, scripts and fonts) are resolved against it.
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");
pdf.SaveAs(@"C:\MyProject\Assets\output.pdf");
```
Tous les fichiers CSS, images et JavaScript référencés seront relatifs à ce chemin de base et peuvent être conservés dans une structure propre et logique. Vous pouvez également, bien sûr, choisir de référencer des images, des feuilles de style et des ressources en ligne, y compris des polices web telles que Google Fonts et même jQuery.
<hr class="separator" />
## Exporter un PDF en utilisant une URL existante | URL vers PDF
Le rendu des URL existantes en tant que PDF avec C# est très efficace et intuitif. Cela permet également aux équipes de répartir le travail de conception de PDF et de rendu de PDF en back-end entre plusieurs équipes.
Rendons une page de Wikipedia.com dans l'exemple suivant :
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render a live web page straight from its URL
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// The PDF is written next to the executable
pdf.SaveAs("wikipedia.pdf");
```
Vous remarquerez que les hyperliens et même les formulaires HTML sont préservés dans le PDF généré par notre code C#.
Lors du rendu de pages web existantes, nous avons quelques astuces que nous pouvons souhaiter appliquer :
### CSS pour impression et écran
Les types de médias CSS permettent à une page de porter des styles séparés pour l'impression et l'écran. Nous pouvons instruire IronPDF pour rendre le CSS "Print", qui est souvent plus simple. Par défaut, les styles CSS "Screen" seront rendus, ce qui correspond à ce que vous voyez dans le navigateur.
```csharp
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Choose which CSS media type the page is rendered with.
// Screen (the default) renders the page as a browser displays it;
// Print applies the page's @media print rules instead.
// renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
```
Article principal : [Comparaison HTML en PDF Pixel Perfect](/how-to/pixel-perfect-html-to-pdf/#decide-to-use-css-media-type-print-or-screen).
### JavaScript
IronPDF prend en charge JavaScript, jQuery et même AJAX. Nous pouvons avoir besoin d'instruire [IronPDF pour **attendre** que JS ou ajax](/how-to/javascript-to-pdf/) ait fini de s'exécuter avant de rendre un instantané de notre page web.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Let the page's JavaScript run before the snapshot is taken
renderer.RenderingOptions.EnableJavaScript = true;
// Give scripts and AJAX calls 500 milliseconds to finish before rendering.
// For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait
// for a signal instead of a fixed delay.
renderer.RenderingOptions.WaitFor.RenderDelay(500);
```
Nous pouvons démontrer la prise en charge de JavaScript en rendant la page de documentation du diagramme d'accords [d3.js](https://d3js.org/d3-chord), dont les graphiques sont dessinés par JavaScript lorsque la page se charge :
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// The chart is drawn by JavaScript, so let it run and give it a moment to finish
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
// Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScript
var pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord");
pdf.SaveAs("chart.pdf");
```
### CSS réactif
HTML en PDF en utilisant CSS réactif en .NET ! [Les pages web réactives](/how-to/html-to-pdf-responsive-css/) sont conçues pour être vues dans un navigateur. IronPDF n'ouvre pas une vraie fenêtre de navigateur dans le système d'exploitation de votre serveur. Sans une fenêtre de navigateur, les mises en page réactives peuvent revenir à leur point de rupture le plus étroit.
Nous recommandons d'utiliser les types de médias CSS **Print** pour naviguer dans ce problème. Le CSS pour impression ne devrait normalement pas être réactif.
```csharp
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Responsive layouts are designed for a browser viewport, so render the page's
// print stylesheet instead of its screen stylesheet
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
```
<hr class="separator" />
## Générer un PDF à partir d'une page HTML
Nous pouvons également rendre n'importe quelle page HTML en PDF sur notre disque dur. Toutes les ressources relatives telles que CSS, images et js seront rendues comme si le fichier avait été ouvert en utilisant le protocole **file://**.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render an HTML file from disk. Relative CSS, image and script paths
// resolve against the file's own folder, as if opened with file://
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");
```
Cette méthode a l'avantage de permettre au développeur de tester le contenu HTML dans un navigateur pendant le développement. Nous recommandons Chrome car c'est le navigateur web sur lequel le moteur de rendu d'IronPDF est basé.
Pour convertir [XML en PDF, vous pouvez utiliser le modèle XSLT pour imprimer votre contenu XML en PDF](/how-to/xml-to-pdf/).
<hr class="separator" />
## Ajouter des en-têtes et pieds de page personnalisés
Les en-têtes et pieds de page peuvent être ajoutés aux PDF lorsqu'ils sont rendus, ou à des fichiers PDF existants en utilisant IronPDF.
Avec IronPDF, les en-têtes et pieds de page peuvent contenir du contenu textuel simple en utilisant la classe *`TextHeaderFooter`* - ou avec des images et du contenu HTML riche en utilisant la classe *`HtmlHeaderFooter`*.
```csharp
using IronPdf;
using IronPdf.Rendering;
// Create a PDF from an existing HTML file with rendering options set up front
var renderer = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions
{
// Margins are in millimeters
MarginTop = 50,
MarginBottom = 50,
// Render the page's print stylesheet
CssMediaType = PdfCssMediaType.Print,
// Plain-text header: the document title, centered, above a divider line
TextHeader = new TextHeaderFooter
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
// Plain-text footer: date and time on the left, page numbers on the right
TextFooter = new TextHeaderFooter
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
}
}
};
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");
// Open the result in the default PDF viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
FileName = "Invoice.pdf",
UseShellExecute = true
});
```
Explorez toutes les options de rendu dans l'article pratique suivant : [Comment utiliser les options de rendu](/how-to/rendering-options/).
### En-têtes et pieds de page HTML
La classe `HtmlHeaderFooter` permet de générer des en-têtes et pieds de page riches en utilisant du contenu HTML5 qui peut même inclure des images et des feuilles de style.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// An HTML footer can carry markup, styles and images.
// {page} and {total-pages} are filled in for every page.
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
```
### Données dynamiques dans les en-têtes et pieds de page PDF
Nous pouvons "fusionner" du contenu dans le texte et même le HTML des en-têtes et pieds de page en utilisant des espaces réservés tels que :
- `{page}` pour le numéro de page actuel
- `{total-pages}` pour le nombre total de pages dans le PDF
- `{url}` pour l'URL du PDF rendu si rendu à partir d'une page web
- `{date}` pour la date d'aujourd'hui
- `{time}` pour l'heure actuelle
- `{html-title}` pour le `<title>` du document HTML rendu
- `{pdf-title}` pour le titre du document, qui peut être défini via ChromePdfRenderOptions
<hr class="separator" />
## Paramètres de conversion HTML en PDF C#
Il existe de nombreuses nuances sur la façon dont nos utilisateurs et clients peuvent s'attendre à ce que le contenu PDF soit rendu.
La classe `ChromePdfRenderer` contient une propriété **RenderingOptions** qui peut être utilisée pour définir ces options.
Par exemple, nous pouvons souhaiter choisir d'accepter uniquement les directives CSS3 de style "`print`" :
```csharp
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Render the page's @media print CSS rather than its screen styles
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf");
```
Nous pouvons également souhaiter modifier la taille de nos marges d'impression pour créer plus d'espace blanc sur la page, pour faire de la place pour de grands en-têtes ou pieds de page, ou même définir des marges nulles pour l'impression commerciale de brochures ou d'affiches :
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Page margins in millimeters. Larger margins leave room for headers and
// footers; set them to 0 for edge-to-edge brochures and posters.
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
```
Nous pouvons souhaiter activer ou désactiver les images d'arrière-plan des éléments HTML :
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Include CSS background colors and images in the PDF (set false to drop them)
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>");
pdf.SaveAs("output.pdf");
```
Il est également possible de définir nos PDF de sortie pour être rendus sur n'importe quelle taille de papier virtuelle - y compris les tailles portrait et paysage et même des tailles personnalisées qui peuvent être définies en millimètres ou en pouces.
```csharp
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Standard paper sizes and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Or a custom size, in millimeters or inches
// renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297);
// renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
```
Explorez toutes les options de rendu dans l'article pratique suivant : "[Comment utiliser les options de rendu](/how-to/rendering-options/)."
<hr class="separator" />
## Appliquer le modèle HTML
Modéliser ou "créer en lot" des PDF est une exigence courante pour les développeurs Internet et de sites web.
Plutôt que de modéliser un document PDF lui-même, avec IronPDF, nous pouvons modéliser notre HTML en utilisant des technologies existantes et bien éprouvées. Lorsque le modèle HTML est combiné avec des données provenant d'une chaîne de requête ou d'une base de données, nous obtenons un document PDF généré dynamiquement.
Dans le cas le plus simple, l'utilisation de la méthode C# String.Format est efficace pour un exemple de base.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Insert a value into an HTML template with string.Format
string html = string.Format("<h1>Hello {0}!</h1>", "World");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Hello.pdf");
```
Si le fichier HTML est plus long, nous pouvons souvent utiliser des espaces réservés arbitraires tels que `[[NAME]]` et les remplacer par des données réelles plus tard.
L'exemple suivant créera 3 PDF, chacun personnalisé pour un utilisateur.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// A template with a placeholder to replace
var htmlTemplate = "<p>[[NAME]]</p>";
var names = new[] { "John", "James", "Jenny" };
// One personalized PDF per name
foreach (var name in names)
{
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
pdf.SaveAs(name + ".pdf");
}
```
### Modélisation avancée avec Handlebars.NET
Une méthode sophistiquée pour fusionner des données C# avec du HTML pour la génération de PDF est d'utiliser le langage de modélisation Handlebars.
Handlebars permet de créer du HTML dynamique à partir d'objets et d'instances de classe C# y compris des enregistrements de base de données. Handlebars est particulièrement efficace lorsqu'une requête peut renvoyer un nombre inconnu de lignes, comme dans la génération d'une facture.
Nous devons d'abord ajouter un package NuGet supplémentaire à notre projet : [https://www.nuget.org/packages/Handlebars.NET/](https://www.nuget.org/packages/Handlebars.NET/)
```csharp
using HandlebarsDotNet;
// A Handlebars template with two placeholders
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile it once, then fill it with any object that has matching properties
var template = Handlebars.Compile(source);
var data = new { title = "My new post", body = "This is my first post!" };
string html = template(data);
// html now contains:
//
// <div class="entry">
// <h1>My new post</h1>
// <div class="body">
// This is my first post!
// </div>
// </div>
```
Pour rendre ce HTML, nous pouvons simplement utiliser la méthode `RenderHtmlAsPdf`.
```csharp
using HandlebarsDotNet;
using IronPdf;
// Fill the Handlebars template, then render the resulting HTML
var template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>");
string html = template(new { title = "My new post", body = "This is my first post!" });
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Handlebars.pdf");
```
Vous pouvez en savoir plus sur le langage de modélisation Handlebars et son implémentation en C# sur [GitHub](https://github.com/Handlebars-Net/Handlebars.Net).
### Ajouter des sauts de page en utilisant HTML5
Une exigence courante dans un document PDF est la pagination. Les développeurs ont besoin de contrôler où les pages PDF commencent et se terminent pour une mise en page propre et lisible.
La façon la plus simple de le faire est avec un truc CSS peu connu qui rendra un saut de page dans n'importe quel document HTML imprimé.
```html
<div style='page-break-after: always;'> </div>
```
Le HTML fourni fonctionne, mais n'est guère une bonne pratique. Nous conseillons d'ajuster l'attribut media comme dans l'exemple suivant. Une manière si propre et ordonnée de disposer du contenu HTML multi-pages. Parce qu'IronPDF rend avec le type de média `screen` par défaut, une feuille de style `media="print"` n'est appliquée que lorsque `RenderingOptions.CssMediaType` est défini sur `PdfCssMediaType.Print` (voir [Paramètres de conversion](#anchor-c-html-to-pdf-conversion-settings) ci-dessus).
```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>This is Page 1</h1>
</div>
<div class="page">
<h1>This is Page 2</h1>
</div>
<div class="page">
<h1>This is Page 3</h1>
</div>
</body>
</html>
```
Le guide pratique décrit plus de [conseils et astuces avec les sauts de page](/how-to/html-to-pdf-page-breaks/).
<hr class="separator" />
## Joindre une page de couverture à un PDF
IronPDF facilite la fusion de documents PDF. L'utilisation la plus courante de cette technique est d'ajouter une page de couverture ou une page de fin à un document PDF rendu existant.
Pour ce faire, nous rendons d'abord une page de couverture, puis utilisons la méthode statique `PdfDocument.Merge()` pour combiner les deux documents.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// The document body, rendered from a web page
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
// Prepend an existing PDF as the cover page. Merge returns a new document.
var cover = PdfDocument.FromFile("CoverPage.pdf");
var pdfMerged = PdfDocument.Merge(cover, pdf);
pdfMerged.SaveAs("Combined.pdf");
```
Un exemple de code complet peut être trouvé ici : [Exemple de code de page de couverture PDF](/examples/pdf-cover-page/).
<hr class="separator" />
## Ajouter un filigrane
Une dernière fonctionnalité [C# PDF](/use-case/csharp-pdf/) qu'IronPDF prend en charge est d'ajouter un filigrane aux documents. Cela peut être utilisé pour ajouter un avis à chaque page indiquant qu'un document est "confidentiel" ou un "échantillon".
```csharp
using IronPdf;
using IronPdf.Editing;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.
// The watermark is HTML, so any markup, styling or image can be used.
pdf.ApplyWatermark(
"<h2 style='color:red; font-size:50px'>SAMPLE</h2>",
rotation: 30,
opacity: 50,
verticalAlignment: VerticalAlignment.Middle,
horizontalAlignment: HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
```
Un exemple de code complet peut être trouvé ici : [Exemple de code de filigrane PDF](/examples/pdf-watermarking/).
<hr class="separator" />
## Télécharger le code source C#
Le code source complet **gratuit du convertisseur HTML en PDF C#** pour ce tutoriel est disponible en téléchargement sous forme de fichier projet Visual Studio 2022 zippé. Il utilisera son moteur de rendu pour générer des objets de document PDF en C#.
[Téléchargez ce tutoriel en tant que projet Visual Studio](/tutorials/html-to-pdf/downloads/CSharp-Html-To-Pdf-Tutorial.zip)
Le téléchargement gratuit contient tout ce dont vous avez besoin pour créer un PDF à partir de HTML - y compris des exemples de code PDF C# fonctionnels pour :
1. Convertir une chaîne HTML en PDF en utilisant C#
2. Fichier HTML en PDF en C# (prenant en charge CSS, JavaScript et images)
3. HTML en PDF en C# en utilisant une URL ("URL en PDF")
4. Exemples d'édition et de paramètres PDF en C#
5. Rendu de graphiques de canvas JavaScript tels que d3.js en PDF
6. La bibliothèque PDF pour C#
### Référence de classe
Les développeurs peuvent également être intéressés par la référence de classe `IronPdf.PdfDocument` :
[https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html](https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html)
Ce modèle d'objet montre comment les documents PDF peuvent être :
- Cryptés et protégés par mot de passe
- Édités ou 'tamponnés' avec du nouveau contenu HTML
- Améliorés avec des images de premier plan et d'arrière-plan
- Fusionnés, joints, tronqués et épissés au niveau de la page ou du document
- Analysés pour extraire du texte brut et des images, ou traités par OCR avec le package IronOCR
<hr class="separator" />
## Blazor HTML en PDF
Ajouter une fonctionnalité HTML en PDF à votre serveur Blazor est facile, il suffit de :
1. Créer un nouveau projet de serveur Blazor ou utiliser un existant
2. Ajouter la bibliothèque IronPDF à votre projet en utilisant NuGet
3. Ajouter un nouveau composant Razor ou utiliser un existant
4. Ajouter un `InputTextArea` et le lier à IronPDF
5. Laisser IronPDF s'occuper du reste et déployer
Pour en savoir plus, continuez avec le [guide complet étape par étape](/how-to/blazor-tutorial/) pour [convertir HTML en PDF dans les applications Blazor](/how-to/blazor-tutorial/).
<img src="/static-assets/pdf/tutorials/blazor-tutorial/blazor-tutorial-3.webp" alt="PDF généré à partir d'une page de serveur Blazor avec IronPDF" />
<hr class="separator" />
## Comparer avec d'autres bibliothèques PDF
IronPDF est une bibliothèque PDF puissante et complète conçue pour les développeurs .NET modernes. Avec une conversion HTML en PDF native alimentée par un moteur Chromium avancé, une API intuitive et des mises à jour régulières, elle simplifie le développement tout en garantissant des résultats de haute qualité. Examinons de plus près comment elle se compare à d'autres outils :
### PDFSharp
- **Fonctionnalités principales** : PDFsharp est une bibliothèque open-source (MIT) pour créer et éditer des documents PDF en code géré. Elle n'a pas de moteur de rendu HTML, donc convertir du contenu web en PDF nécessite un moteur tiers séparé.
- **Normes modernes** : IronPDF exploite les technologies web modernes, y compris HTML, CSS et JavaScript, grâce à son moteur basé sur Chromium, garantissant que les PDF conservent un aspect et une convivialité contemporains.
- **Support et mises à jour** : PDFsharp est open source et publie une version tous les quelques mois, avec un support commercial vendu séparément par son mainteneur. IronPDF publie des mises à jour mensuelles et des correctifs de sécurité, et chaque licence inclut un support technique professionnel, ce qui est important pour les applications d'entreprise.
### wkhtmltopdf
- **Facilité d'intégration** : wkhtmltopdf est un outil en ligne de commande avec une bibliothèque C ; il n'y a pas de package .NET officiel, donc l'utiliser depuis .NET signifie lancer le binaire natif (ou l'appeler via un wrapper tiers tel que DinkToPdf) et expédier ce binaire pour chaque plateforme sur laquelle vous déployez.
- **Technologie de rendu** : wkhtmltopdf rend avec QtWebKit, un fork de WebKit que Qt a déprécié en 2015 et abandonné dans Qt 5.6, donc les fonctionnalités modernes de JavaScript et CSS ne sont pas prises en charge, surtout sur les sites web dynamiques et riches en contenu. Le moteur Chromium d'IronPDF rend les normes web actuelles.
- **Développement continu** : la dernière version de wkhtmltopdf était 0.12.6 en juin 2020 et son dépôt GitHub a été archivé en janvier 2023, donc il n'y a pas de support du fournisseur. IronPDF continue d'évoluer avec des mises à jour mensuelles et un service client dédié.
### iTextSharp
- **Rendu HTML en PDF** : iText convertit HTML via son add-on pdfHTML séparé, un moteur de mise en page CSS plutôt qu'un navigateur, et la ligne iTextSharp 5 héritée ne reçoit maintenant que des correctifs de sécurité. IronPDF rend HTML avec un moteur Chromium intégré dans le package principal, sans add-on requis.
- **Expérience développeur** : l'API d'iText fonctionne au niveau des objets PDF et des éléments de mise en page, ce qui est puissant mais signifie plus de code pour les tâches quotidiennes. IronPDF offre une API C# propre et intuitive, simplifiant le codage et accélérant la livraison des projets.
- **Maintenance et support** : l'utilisation gratuite d'iText est sous l'AGPL, avec le support du fournisseur réservé aux licences commerciales, et iTextSharp 5.x est en fin de vie à part les correctifs de sécurité. IronPDF inclut un support professionnel et des mises à jour mensuelles avec chaque licence.
### Aspose.PDF
- **Qualité de conversion** : Aspose.PDF convertit HTML avec son propre moteur de mise en page plutôt qu'un navigateur. Sa documentation convertit une page web en récupérant d'abord le HTML avec `HttpClient` dans un flux et en le passant à `Document` avec `HtmlLoadOptions`, plutôt que de rendre directement à partir d'une URL. Dans notre test r/nfl ci-dessous, la sortie était presque vide : le logo de la communauté, un titre et quelques cases vides. Le moteur Chromium d'IronPDF rend directement une URL, JavaScript inclus.
- **Utilisabilité de l'API** : l'API d'Aspose.PDF peut être verbeuse, tandis qu'IronPDF se concentre sur une expérience conviviale pour les développeurs qui minimise le temps de configuration et améliore la productivité.
- **Fidélité de sortie** : Parce qu'IronPDF rend avec Chromium, le PDF correspond à ce que Chrome montre pour le même HTML, ce qui rend la conception et le débogage prévisibles pour la génération de PDF à haut volume.
### Syncfusion PDF
- **Complexité de l'API** : Syncfusion PDF est une bibliothèque capable avec une surface d'API plus large à apprendre. IronPDF, en revanche, fournit une API simple pour une intégration rapide.
- **Moteur de rendu** : Le convertisseur HTML de Syncfusion utilise maintenant le moteur Chromium Blink ; ses anciens moteurs WebKit et Internet Explorer ont été marqués obsolètes dans Essential Studio 2022 Volume 3. Dans notre test r/nfl ci-dessous, la sortie de Syncfusion a conservé le flux principal mais a supprimé les panneaux de navigation et de communauté, tandis que le moteur Chromium d'IronPDF a rendu toute la page.
- **Au-delà de la conversion** : Le package d'IronPDF couvre également les signatures numériques, les annotations, le remplissage de formulaires et le tamponnage de codes-barres, donc la même bibliothèque gère le reste du flux de travail du document.
### Comparaison de rendu
Pour comparer la qualité de conversion HTML en PDF de ces bibliothèques, nous avons utilisé une page de communauté Reddit, r/nfl, qui contient du contenu dynamique, des mises à jour en direct, du CSS moderne et des éléments basés sur JavaScript :
`https://www.reddit.com/r/nfl/`

Voici les résultats d'une seule exécution avec les paramètres par défaut de chaque bibliothèque. Syncfusion et Aspose.PDF ont été exécutés en tant que versions d'évaluation, c'est pourquoi leur sortie porte des filigranes d'évaluation (*cliquez sur chaque image pour l'agrandir*) :
<div class="competitors-section__wrapper">
<div class="competitors__card half">
<p class="competitors__header">IronPDF</p>
<img
class="competitors__image img-popup"
src="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-2.webp"
alt="Sortie de la conversion IronPDF de la page Reddit r/nfl de HTML en PDF"
data-fullsize="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-2.webp" />
<small><strong>PDF bien formaté et visuellement précis, préservant le contenu dynamique et le style moderne.</strong></small>
</div>
<div class="competitors__card half">
<p class="competitors__header">SyncFusion</p>
<img
class="competitors__image img-popup"
src="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-3.webp"
alt="Sortie de la conversion Syncfusion de la page Reddit r/nfl de HTML en PDF"
data-fullsize="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-3.webp" />
<small><strong>Converti avec une version d'évaluation. Le flux principal, le contenu des publications et le style sont passés dans une mise en page étroite à une seule colonne, mais la navigation à gauche et le panneau communautaire à droite ont été supprimés.</strong></small>
</div>
</div>
<div class="competitors-section__wrapper">
<div class="competitors__card half">
<p class="competitors__header">Aspose.PDF</p>
<img
class="competitors__image img-popup"
src="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-4.webp"
alt="Sortie de la conversion Aspose.PDF de la page Reddit r/nfl de HTML en PDF"
data-fullsize="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-4.webp" />
<small><strong>Version d'évaluation ; nécessitait de télécharger d'abord le HTML (Aspose.PDF charge le HTML à partir d'un flux plutôt qu'une URL). La sortie était presque vide : le logo de la communauté, un titre et quelques cases vides.</strong></small>
</div>
<div class="competitors__card half">
<p class="competitors__header">Wkhtmltopdf</p>
<img
class="competitors__image img-popup"
src="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-5.webp"
alt="Sortie de la conversion wkhtmltopdf de la page Reddit r/nfl de HTML en PDF"
data-fullsize="/static-assets/pdf/tutorials/html-to-pdf/html-to-pdf-5.webp" />
<small><strong>wkhtmltopdf a terminé la conversion, mais le résultat est le texte et les images de la page sans aucune de sa mise en page, de son style, de ses éléments dynamiques ou de son interactivité. Cela rend wkhtmltopdf inadapté aux pages web modernes et dynamiques.</strong></small>
</div>
</div>
[{i:(PDFsharp n'a pas de moteur de rendu HTML, et iText convertit HTML uniquement via son add-on pdfHTML séparé, donc aucun n'a été inclus dans ce test de rendu de navigateur.)}]
### Conclusion
Pour les développeurs .NET à la recherche d'une solution PDF moderne et fiable, IronPDF est un choix solide. Sa conversion HTML en PDF basée sur Chromium, sa facilité d'utilisation, ses mises à jour régulières et son large ensemble de fonctionnalités en font un choix de premier plan. Que vous travailliez sur un petit projet ou une application d'entreprise à grande échelle, IronPDF améliore la productivité tout en évitant les risques associés aux bibliothèques obsolètes ou non prises en charge. Conçu pour les applications commerciales, IronPDF maintient vos projets sur une bibliothèque maintenue et prise en charge.
Dans notre test avec une page web dynamique du monde réel, IronPDF a produit le rendu le plus complet et précis. Syncfusion a supprimé les panneaux de navigation et de communauté. Aspose.PDF nécessitait de télécharger d'abord le HTML et a quand même rendu presque aucune partie de la page. wkhtmltopdf a produit le texte et les images sans le style de la page, un mauvais choix pour les sites modernes.
Pour les flux de travail modernes HTML en PDF, cette combinaison de précision de rendu et d'une petite API lisible est ce qui distingue IronPDF.
**Découvrez la suite complète de fonctionnalités d'IronPDF qui convertit facilement le HTML dynamique et lourd en CSS en PDF. Testez-le maintenant avec notre [essai gratuit](trial-license).**
<hr class="separator" />
## Regardez la vidéo tutorielle HTML en PDF en C#
<a name="video"></a>
Avec le document PDF, vous pouvez visiter le lien suivant pour apprendre comment [configurer Chrome pour ouvrir les PDF dans le navigateur au lieu de les télécharger](https://support.google.com/chrome/answer/114662).
!!!--LIBRARY_GET_STARTED_WITH_PRODUCT_TRIAL_EXTENDED_BLOCK--!!!
En tant que développeurs d'IronPDF, nous savons à quel point il est important que la conversion HTML en PDF produise des résultats précis et de haute qualité qui répondent aux attentes des clients. Ce tutoriel C# vous guidera dans la création d'un convertisseur HTML en PDF pour vos applications, projets et sites web. Nous développerons un convertisseur HTML en PDF en C#, et les documents PDF générés par IronPDF seront identiques aux PDF générés par le navigateur web Google Chrome.
Créer des fichiers PDF par programmation en .NET peut être une tâche frustrante. Le format de fichier de document PDF a été conçu davantage pour les imprimantes que pour les développeurs. Et C# n'a pas beaucoup de bibliothèques ou de fonctionnalités intégrées adaptées à la génération de PDF, de nombreuses bibliothèques nécessitent une configuration supplémentaire et causent encore plus de frustration lorsqu'elles nécessitent plusieurs lignes de code pour accomplir une tâche simple.
L'outil de conversion HTML en PDF C# que nous utiliserons dans ce tutoriel est IronPDF par Iron Software, une bibliothèque de génération et d'édition de PDF C# très populaire. Cette bibliothèque dispose de toutes les fonctionnalités d'édition et de génération de PDF, fonctionne immédiatement, fait exactement ce dont vous avez besoin avec le moins de lignes possible, et dispose d'une documentation exceptionnelle de ses 50+ fonctionnalités. IronPDF se distingue par le fait qu'il prend en charge .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, et .NET 5, .NET Core, .NET Standard, et .NET Framework sur Windows, macOS, Linux, Docker, Azure, et AWS.
Avec C# et IronPDF, la logique pour "générer un document PDF" ou "conversion HTML en PDF" est simple. Grâce au moteur de rendu avancé de Chrome d'IronPDF, la plupart ou la totalité de la conception et de la mise en page du document PDF utiliseront des ressources HTML existantes.
Cette méthode de génération dynamique de PDF en .NET avec HTML5 fonctionne tout aussi bien dans les applications console, les applications Windows Forms, WPF, ainsi que les sites web et MVC.
IronPDF prend également en charge le débogage de votre HTML avec Chrome pour des PDF Pixel Perfect. Un tutoriel pour configurer cela peut être trouvé ici.
IronPDF est disponible dans plusieurs langues, à la fois à l'intérieur et à l'extérieur de l'écosystème .NET.
IronPDF est gratuit pour le développement ; une clé de licence est nécessaire pour déployer en direct et pour supprimer le filigrane d'essai. Vous pouvez acheter une licence ici ou vous inscrire pour une clé d'essai gratuite de 30 jours ici.
Étape 1
Téléchargez et installez la bibliothèque HTML en PDF C#
Visual Studio - Gestionnaire de packages NuGet
Dans Visual Studio, cliquez avec le bouton droit sur votre explorateur de solutions de projet et sélectionnez "Gérer les packages NuGet...". De là, recherchez simplement IronPDF et installez la dernière version dans votre solution... cliquez sur OK pour toutes les boîtes de dialogue qui apparaissent. Cela fonctionnera également tout aussi bien dans les projets VB.NET.
PM > Install-Package IronPdf
Install-Package IronPdf
IronPDF sur le site NuGet
Pour un aperçu complet des fonctionnalités, de la compatibilité et des téléchargements d'IronPDF, veuillez consulter IronPDF sur le site officiel de NuGet : https://www.nuget.org/packages/IronPdf
Installation via DLL
Une autre option consiste à installer directement le DLL IronPDF. IronPDF peut être téléchargé et installé manuellement dans le projet ou le GAC depuis https://ironpdf.com/packages/IronPdf.zip
Tutoriels pratiques
Créez un PDF avec une chaîne HTML en C# .NET
Comment : Convertir une chaîne HTML en PDF ? C'est une compétence très efficace et gratifiante de créer un nouveau fichier PDF en C#.
Nous pouvons simplement utiliser la méthode ChromePdfRenderer.RenderHtmlAsPdf pour transformer n'importe quelle chaîne HTML (HTML5) en PDF. Le rendu HTML en PDF en C# est effectué par une version entièrement fonctionnelle du moteur Google Chromium qui est livré avec le package NuGet IronPDF.
using IronPdf;// ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome enginevar renderer = new ChromePdfRenderer();// Render an HTML string. The result is a PdfDocument held in memoryvar pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");// Write the PDF to diskpdf.SaveAs("pixel-perfect.pdf");
using IronPdf;
// ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engine
var renderer = new ChromePdfRenderer();
// Render an HTML string. The result is a PdfDocument held in memory
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Write the PDF to disk
pdf.SaveAs("pixel-perfect.pdf");
ImportsIronPdf' ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engineDim renderer = New ChromePdfRenderer()' Render an HTML string. The result is a PdfDocument held in memoryDim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")' Write the PDF to diskpdf.SaveAs("pixel-perfect.pdf")
Imports IronPdf
' ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engine
Dim renderer = New ChromePdfRenderer()
' Render an HTML string. The result is a PdfDocument held in memory
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
' Write the PDF to disk
pdf.SaveAs("pixel-perfect.pdf")
RenderHtmlAsPdf prend entièrement en charge HTML5, CSS3, JavaScript et les images. Si ces ressources sont sur un disque dur, nous pouvons vouloir définir le deuxième paramètre de RenderHtmlAsPdf sur le répertoire contenant les ressources. Cette méthode renvoie un objet PdfDocument, qui est une classe utilisée pour contenir des informations PDF.
IronPDF rendra votre HTML exactement comme il apparaît dans Chrome
Nous avons un tutoriel complet dédié à vous permettre de configurer Chrome pour un débogage HTML complet afin de vous assurer que les modifications que vous voyez lors de l'édition de votre HTML, CSS et JavaScript sont exactement les mêmes que le PDF de sortie d'IronPDF lorsque vous choisissez de rendre. Veuillez trouver le tutoriel ici : Comment déboguer HTML dans Chrome pour créer des PDF Pixel Perfect.
Chemin URL de base (l'argument BaseUrlOrPath) :
using IronPdf;var renderer = new ChromePdfRenderer();// The second argument is the base path. Relative URLs in the HTML (the image// below, but also stylesheets, scripts and fonts) are resolved against it.var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");pdf.SaveAs(@"C:\MyProject\Assets\output.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// The second argument is the base path. Relative URLs in the HTML (the image
// below, but also stylesheets, scripts and fonts) are resolved against it.
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");
pdf.SaveAs(@"C:\MyProject\Assets\output.pdf");
Dim renderer = New ChromePdfRenderer()' The second argument is the base path. Relative URLs in the HTML (the image' below, but also stylesheets, scripts and fonts) are resolved against it.Dim pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", "C:\MyProject\Assets\")pdf.SaveAs("C:\MyProject\Assets\output.pdf")
Dim renderer = New ChromePdfRenderer()
' The second argument is the base path. Relative URLs in the HTML (the image
' below, but also stylesheets, scripts and fonts) are resolved against it.
Dim pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", "C:\MyProject\Assets\")
pdf.SaveAs("C:\MyProject\Assets\output.pdf")
Tous les fichiers CSS, images et JavaScript référencés seront relatifs à ce chemin de base et peuvent être conservés dans une structure propre et logique. Vous pouvez également, bien sûr, choisir de référencer des images, des feuilles de style et des ressources en ligne, y compris des polices web telles que Google Fonts et même jQuery.
Exporter un PDF en utilisant une URL existante | URL vers PDF
Le rendu des URL existantes en tant que PDF avec C# est très efficace et intuitif. Cela permet également aux équipes de répartir le travail de conception de PDF et de rendu de PDF en back-end entre plusieurs équipes.
Rendons une page de Wikipedia.com dans l'exemple suivant :
using IronPdf;var renderer = new ChromePdfRenderer();// Render a live web page straight from its URLvar pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");// The PDF is written next to the executablepdf.SaveAs("wikipedia.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render a live web page straight from its URL
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// The PDF is written next to the executable
pdf.SaveAs("wikipedia.pdf");
ImportsIronPdfDim renderer = New ChromePdfRenderer()' Render a live web page straight from its URLDim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")' The PDF is written next to the executablepdf.SaveAs("wikipedia.pdf")
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' Render a live web page straight from its URL
Dim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
' The PDF is written next to the executable
pdf.SaveAs("wikipedia.pdf")
Vous remarquerez que les hyperliens et même les formulaires HTML sont préservés dans le PDF généré par notre code C#.
Lors du rendu de pages web existantes, nous avons quelques astuces que nous pouvons souhaiter appliquer :
CSS pour impression et écran
Les types de médias CSS permettent à une page de porter des styles séparés pour l'impression et l'écran. Nous pouvons instruire IronPDF pour rendre le CSS "Print", qui est souvent plus simple. Par défaut, les styles CSS "Screen" seront rendus, ce qui correspond à ce que vous voyez dans le navigateur.
using IronPdf;using IronPdf.Rendering;var renderer = new ChromePdfRenderer();// Choose which CSS media type the page is rendered with.// Screen (the default) renders the page as a browser displays it;// Print applies the page's @media print rules instead.// renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Choose which CSS media type the page is rendered with.
// Screen (the default) renders the page as a browser displays it;
// Print applies the page's @media print rules instead.
// renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
ImportsIronPdfImportsIronPdf.RenderingDim renderer = New ChromePdfRenderer()' Choose which CSS media type the page is rendered with.' Screen (the default) renders the page as a browser displays it;' Print applies the page's @media print rules instead.' renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screenrenderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer = New ChromePdfRenderer()
' Choose which CSS media type the page is rendered with.
' Screen (the default) renders the page as a browser displays it;
' Print applies the page's @media print rules instead.
' renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
IronPDF prend en charge JavaScript, jQuery et même AJAX. Nous pouvons avoir besoin d'instruire IronPDF pour attendre que JS ou ajax ait fini de s'exécuter avant de rendre un instantané de notre page web.
using IronPdf;var renderer = new ChromePdfRenderer();// Let the page's JavaScript run before the snapshot is takenrenderer.RenderingOptions.EnableJavaScript = true;// Give scripts and AJAX calls 500 milliseconds to finish before rendering.// For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait// for a signal instead of a fixed delay.renderer.RenderingOptions.WaitFor.RenderDelay(500);
using IronPdf;
var renderer = new ChromePdfRenderer();
// Let the page's JavaScript run before the snapshot is taken
renderer.RenderingOptions.EnableJavaScript = true;
// Give scripts and AJAX calls 500 milliseconds to finish before rendering.
// For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait
// for a signal instead of a fixed delay.
renderer.RenderingOptions.WaitFor.RenderDelay(500);
Dim renderer = New ChromePdfRenderer()' Let the page's JavaScript run before the snapshot is takenrenderer.RenderingOptions.EnableJavaScript = True' Give scripts and AJAX calls 500 milliseconds to finish before rendering.' For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait' for a signal instead of a fixed delay.renderer.RenderingOptions.WaitFor.RenderDelay(500)
Dim renderer = New ChromePdfRenderer()
' Let the page's JavaScript run before the snapshot is taken
renderer.RenderingOptions.EnableJavaScript = True
' Give scripts and AJAX calls 500 milliseconds to finish before rendering.
' For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait
' for a signal instead of a fixed delay.
renderer.RenderingOptions.WaitFor.RenderDelay(500)
Nous pouvons démontrer la prise en charge de JavaScript en rendant la page de documentation du diagramme d'accords d3.js, dont les graphiques sont dessinés par JavaScript lorsque la page se charge :
using IronPdf;var renderer = new ChromePdfRenderer();// The chart is drawn by JavaScript, so let it run and give it a moment to finishrenderer.RenderingOptions.EnableJavaScript = true;renderer.RenderingOptions.WaitFor.RenderDelay(500);// Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScriptvar pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord");pdf.SaveAs("chart.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// The chart is drawn by JavaScript, so let it run and give it a moment to finish
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
// Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScript
var pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord");
pdf.SaveAs("chart.pdf");
ImportsIronPdfDim renderer = New ChromePdfRenderer()' The chart is drawn by JavaScript, so let it run and give it a moment to finishrenderer.RenderingOptions.EnableJavaScript = Truerenderer.RenderingOptions.WaitFor.RenderDelay(500)' Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScriptDim pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord")pdf.SaveAs("chart.pdf")
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' The chart is drawn by JavaScript, so let it run and give it a moment to finish
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(500)
' Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScript
Dim pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord")
pdf.SaveAs("chart.pdf")
CSS réactif
HTML en PDF en utilisant CSS réactif en .NET ! Les pages web réactives sont conçues pour être vues dans un navigateur. IronPDF n'ouvre pas une vraie fenêtre de navigateur dans le système d'exploitation de votre serveur. Sans une fenêtre de navigateur, les mises en page réactives peuvent revenir à leur point de rupture le plus étroit.
Nous recommandons d'utiliser les types de médias CSS Print pour naviguer dans ce problème. Le CSS pour impression ne devrait normalement pas être réactif.
using IronPdf;using IronPdf.Rendering;var renderer = new ChromePdfRenderer();// Responsive layouts are designed for a browser viewport, so render the page's// print stylesheet instead of its screen stylesheetrenderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Responsive layouts are designed for a browser viewport, so render the page's
// print stylesheet instead of its screen stylesheet
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
ImportsIronPdfImportsIronPdf.RenderingDim renderer As New ChromePdfRenderer()' Responsive layouts are designed for a browser viewport, so render the page's' print stylesheet instead of its screen stylesheetrenderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer As New ChromePdfRenderer()
' Responsive layouts are designed for a browser viewport, so render the page's
' print stylesheet instead of its screen stylesheet
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
Générer un PDF à partir d'une page HTML
Nous pouvons également rendre n'importe quelle page HTML en PDF sur notre disque dur. Toutes les ressources relatives telles que CSS, images et js seront rendues comme si le fichier avait été ouvert en utilisant le protocole file://.
using IronPdf;var renderer = new ChromePdfRenderer();// Render an HTML file from disk. Relative CSS, image and script paths// resolve against the file's own folder, as if opened with file://var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");pdf.SaveAs("Invoice.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render an HTML file from disk. Relative CSS, image and script paths
// resolve against the file's own folder, as if opened with file://
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");
Dim renderer = New ChromePdfRenderer()' Render an HTML file from disk. Relative CSS, image and script paths' resolve against the file's own folder, as if opened with file://Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")pdf.SaveAs("Invoice.pdf")
Dim renderer = New ChromePdfRenderer()
' Render an HTML file from disk. Relative CSS, image and script paths
' resolve against the file's own folder, as if opened with file://
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
pdf.SaveAs("Invoice.pdf")
Cette méthode a l'avantage de permettre au développeur de tester le contenu HTML dans un navigateur pendant le développement. Nous recommandons Chrome car c'est le navigateur web sur lequel le moteur de rendu d'IronPDF est basé.
Ajouter des en-têtes et pieds de page personnalisés
Les en-têtes et pieds de page peuvent être ajoutés aux PDF lorsqu'ils sont rendus, ou à des fichiers PDF existants en utilisant IronPDF.
Avec IronPDF, les en-têtes et pieds de page peuvent contenir du contenu textuel simple en utilisant la classe TextHeaderFooter - ou avec des images et du contenu HTML riche en utilisant la classe HtmlHeaderFooter.
using IronPdf;using IronPdf.Rendering;// Create a PDF from an existing HTML file with rendering options set up frontvar renderer = new ChromePdfRenderer{RenderingOptions = new ChromePdfRenderOptions { // Margins are in millimetersMarginTop = 50,MarginBottom = 50, // Render the page's print stylesheetCssMediaType = PdfCssMediaType.Print, // Plain-text header: the document title, centered, above a divider lineTextHeader = new TextHeaderFooter {CenterText = "{pdf-title}",DrawDividerLine = true,FontSize = 16 }, // Plain-text footer: date and time on the left, page numbers on the rightTextFooter = new TextHeaderFooter {LeftText = "{date} {time}",RightText = "Page {page} of {total-pages}",DrawDividerLine = true,FontSize = 14 } }};var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");pdf.SaveAs("Invoice.pdf");// Open the result in the default PDF viewerSystem.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo{FileName = "Invoice.pdf",UseShellExecute = true});
using IronPdf;
using IronPdf.Rendering;
// Create a PDF from an existing HTML file with rendering options set up front
var renderer = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions
{
// Margins are in millimeters
MarginTop = 50,
MarginBottom = 50,
// Render the page's print stylesheet
CssMediaType = PdfCssMediaType.Print,
// Plain-text header: the document title, centered, above a divider line
TextHeader = new TextHeaderFooter
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
// Plain-text footer: date and time on the left, page numbers on the right
TextFooter = new TextHeaderFooter
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
}
}
};
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");
// Open the result in the default PDF viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
FileName = "Invoice.pdf",
UseShellExecute = true
});
ImportsIronPdfImportsIronPdf.Rendering' Create a PDF from an existing HTML file with rendering options set up frontDim renderer = New ChromePdfRendererWith { .RenderingOptions = New ChromePdfRenderOptionsWith { ' Margins are in millimeters .MarginTop = 50, .MarginBottom = 50, ' Render the page's print stylesheet .CssMediaType = PdfCssMediaType.Print, ' Plain-text header: the document title, centered, above a divider line .TextHeader = New TextHeaderFooterWith { .CenterText = "{pdf-title}", .DrawDividerLine = True, .FontSize = 16 }, ' Plain-text footer: date and time on the left, page numbers on the right .TextFooter = New TextHeaderFooterWith { .LeftText = "{date} {time}", .RightText = "Page {page} of {total-pages}", .DrawDividerLine = True, .FontSize = 14 } }}Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")pdf.SaveAs("Invoice.pdf")' Open the result in the default PDF viewerSystem.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfoWith { .FileName = "Invoice.pdf", .UseShellExecute = True})
Imports IronPdf
Imports IronPdf.Rendering
' Create a PDF from an existing HTML file with rendering options set up front
Dim renderer = New ChromePdfRenderer With {
.RenderingOptions = New ChromePdfRenderOptions With {
' Margins are in millimeters
.MarginTop = 50,
.MarginBottom = 50,
' Render the page's print stylesheet
.CssMediaType = PdfCssMediaType.Print,
' Plain-text header: the document title, centered, above a divider line
.TextHeader = New TextHeaderFooter With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
},
' Plain-text footer: date and time on the left, page numbers on the right
.TextFooter = New TextHeaderFooter With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
}
}
}
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
pdf.SaveAs("Invoice.pdf")
' Open the result in the default PDF viewer
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo With {
.FileName = "Invoice.pdf",
.UseShellExecute = True
})
La classe HtmlHeaderFooter permet de générer des en-têtes et pieds de page riches en utilisant du contenu HTML5 qui peut même inclure des images et des feuilles de style.
using IronPdf;var renderer = new ChromePdfRenderer();// An HTML footer can carry markup, styles and images.// {page} and {total-pages} are filled in for every page.renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter{HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"};
using IronPdf;
var renderer = new ChromePdfRenderer();
// An HTML footer can carry markup, styles and images.
// {page} and {total-pages} are filled in for every page.
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
Dim renderer = New ChromePdfRenderer()' An HTML footer can carry markup, styles and images.' {page} and {total-pages} are filled in for every page.renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooterWith { .HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
Dim renderer = New ChromePdfRenderer()
' An HTML footer can carry markup, styles and images.
' {page} and {total-pages} are filled in for every page.
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
}
Données dynamiques dans les en-têtes et pieds de page PDF
Nous pouvons "fusionner" du contenu dans le texte et même le HTML des en-têtes et pieds de page en utilisant des espaces réservés tels que :
{page} pour le numéro de page actuel
{total-pages} pour le nombre total de pages dans le PDF
{url} pour l'URL du PDF rendu si rendu à partir d'une page web
{date} pour la date d'aujourd'hui
{time} pour l'heure actuelle
{html-title} pour le <title> du document HTML rendu
{pdf-title} pour le titre du document, qui peut être défini via ChromePdfRenderOptions
Paramètres de conversion HTML en PDF C#
Il existe de nombreuses nuances sur la façon dont nos utilisateurs et clients peuvent s'attendre à ce que le contenu PDF soit rendu.
La classe ChromePdfRenderer contient une propriété RenderingOptions qui peut être utilisée pour définir ces options.
Par exemple, nous pouvons souhaiter choisir d'accepter uniquement les directives CSS3 de style "print" :
using IronPdf;using IronPdf.Rendering;var renderer = new ChromePdfRenderer();// Render the page's @media print CSS rather than its screen stylesrenderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf");
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Render the page's @media print CSS rather than its screen styles
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf");
ImportsIronPdfImportsIronPdf.RenderingDim renderer = New ChromePdfRenderer()' Render the page's @media print CSS rather than its screen stylesrenderer.RenderingOptions.CssMediaType = PdfCssMediaType.Printrenderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf")
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer = New ChromePdfRenderer()
' Render the page's @media print CSS rather than its screen styles
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf")
Nous pouvons également souhaiter modifier la taille de nos marges d'impression pour créer plus d'espace blanc sur la page, pour faire de la place pour de grands en-têtes ou pieds de page, ou même définir des marges nulles pour l'impression commerciale de brochures ou d'affiches :
using IronPdf;var renderer = new ChromePdfRenderer();// Page margins in millimeters. Larger margins leave room for headers and// footers; set them to 0 for edge-to-edge brochures and posters.renderer.RenderingOptions.MarginTop = 50;renderer.RenderingOptions.MarginBottom = 50;renderer.RenderingOptions.MarginLeft = 20;renderer.RenderingOptions.MarginRight = 20;
using IronPdf;
var renderer = new ChromePdfRenderer();
// Page margins in millimeters. Larger margins leave room for headers and
// footers; set them to 0 for edge-to-edge brochures and posters.
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
ImportsIronPdfDim renderer = New ChromePdfRenderer()' Page margins in millimeters. Larger margins leave room for headers and' footers; set them to 0 for edge-to-edge brochures and posters.renderer.RenderingOptions.MarginTop = 50renderer.RenderingOptions.MarginBottom = 50renderer.RenderingOptions.MarginLeft = 20renderer.RenderingOptions.MarginRight = 20
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' Page margins in millimeters. Larger margins leave room for headers and
' footers; set them to 0 for edge-to-edge brochures and posters.
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
Nous pouvons souhaiter activer ou désactiver les images d'arrière-plan des éléments HTML :
using IronPdf;var renderer = new ChromePdfRenderer();// Include CSS background colors and images in the PDF (set false to drop them)renderer.RenderingOptions.PrintHtmlBackgrounds = true;var pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>");pdf.SaveAs("output.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Include CSS background colors and images in the PDF (set false to drop them)
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>");
pdf.SaveAs("output.pdf");
ImportsIronPdfDim renderer = New ChromePdfRenderer()' Include CSS background colors and images in the PDF (set false to drop them)renderer.RenderingOptions.PrintHtmlBackgrounds = TrueDim pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>")pdf.SaveAs("output.pdf")
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' Include CSS background colors and images in the PDF (set false to drop them)
renderer.RenderingOptions.PrintHtmlBackgrounds = True
Dim pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>")
pdf.SaveAs("output.pdf")
Il est également possible de définir nos PDF de sortie pour être rendus sur n'importe quelle taille de papier virtuelle - y compris les tailles portrait et paysage et même des tailles personnalisées qui peuvent être définies en millimètres ou en pouces.
using IronPdf;using IronPdf.Rendering;var renderer = new ChromePdfRenderer();// Standard paper sizes and orientationrenderer.RenderingOptions.PaperSize = PdfPaperSize.A4;renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;// Or a custom size, in millimeters or inches// renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297);// renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Standard paper sizes and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Or a custom size, in millimeters or inches
// renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297);
// renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
ImportsIronPdfImportsIronPdf.RenderingDim renderer = New ChromePdfRenderer()' Standard paper sizes and orientationrenderer.RenderingOptions.PaperSize = PdfPaperSize.A4renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape' Or a custom size, in millimeters or inches' renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297)' renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer = New ChromePdfRenderer()
' Standard paper sizes and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
' Or a custom size, in millimeters or inches
' renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297)
' renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
Ma bibliothèque préférée de ce genre est IronPDF. Elle permet une manipulation rapide et efficace des fichiers PDF. Elle dispose également de nombreuses fonctionnalités précieuses, comme l'exportation au format PDF/A et la signature numérique des documents PDF.
IronOCR signifie que nous pouvons économiser 40 000 $ par an grâce au traitement manuel, tout en améliorant la productivité et en libérant des ressources pour des tâches à fort impact. Je le recommande vivement.
Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.
Modéliser ou "créer en lot" des PDF est une exigence courante pour les développeurs Internet et de sites web.
Plutôt que de modéliser un document PDF lui-même, avec IronPDF, nous pouvons modéliser notre HTML en utilisant des technologies existantes et bien éprouvées. Lorsque le modèle HTML est combiné avec des données provenant d'une chaîne de requête ou d'une base de données, nous obtenons un document PDF généré dynamiquement.
Dans le cas le plus simple, l'utilisation de la méthode C# String.Format est efficace pour un exemple de base.
using IronPdf;var renderer = new ChromePdfRenderer();// Insert a value into an HTML template with string.Formatstring html = string.Format("<h1>Hello {0}!</h1>", "World");var pdf = renderer.RenderHtmlAsPdf(html);pdf.SaveAs("Hello.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Insert a value into an HTML template with string.Format
string html = string.Format("<h1>Hello {0}!</h1>", "World");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Hello.pdf");
Dim renderer As New ChromePdfRenderer()' Insert a value into an HTML template with string.FormatDim html AsString = String.Format("<h1>Hello {0}!</h1>", "World")Dim pdf = renderer.RenderHtmlAsPdf(html)pdf.SaveAs("Hello.pdf")
Dim renderer As New ChromePdfRenderer()
' Insert a value into an HTML template with string.Format
Dim html As String = String.Format("<h1>Hello {0}!</h1>", "World")
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Hello.pdf")
Si le fichier HTML est plus long, nous pouvons souvent utiliser des espaces réservés arbitraires tels que [[NAME]] et les remplacer par des données réelles plus tard.
L'exemple suivant créera 3 PDF, chacun personnalisé pour un utilisateur.
using IronPdf;var renderer = new ChromePdfRenderer();// A template with a placeholder to replacevar htmlTemplate = "<p>[[NAME]]</p>";var names = new[] { "John", "James", "Jenny" };// One personalized PDF per nameforeach (var name in names){ var htmlInstance = htmlTemplate.Replace("[[NAME]]", name); var pdf = renderer.RenderHtmlAsPdf(htmlInstance); pdf.SaveAs(name + ".pdf");}
using IronPdf;
var renderer = new ChromePdfRenderer();
// A template with a placeholder to replace
var htmlTemplate = "<p>[[NAME]]</p>";
var names = new[] { "John", "James", "Jenny" };
// One personalized PDF per name
foreach (var name in names)
{
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
pdf.SaveAs(name + ".pdf");
}
ImportsIronPdfDim renderer = New ChromePdfRenderer()' A template with a placeholder to replaceDim htmlTemplate = "<p>[[NAME]]</p>"Dim names = New String() {"John", "James", "Jenny"}' One personalized PDF per nameFor Each name In names Dim htmlInstance = htmlTemplate.Replace("[[NAME]]", name) Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance) pdf.SaveAs(name & ".pdf")Next
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' A template with a placeholder to replace
Dim htmlTemplate = "<p>[[NAME]]</p>"
Dim names = New String() {"John", "James", "Jenny"}
' One personalized PDF per name
For Each name In names
Dim htmlInstance = htmlTemplate.Replace("[[NAME]]", name)
Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
pdf.SaveAs(name & ".pdf")
Next
Modélisation avancée avec Handlebars.NET
Une méthode sophistiquée pour fusionner des données C# avec du HTML pour la génération de PDF est d'utiliser le langage de modélisation Handlebars.
Handlebars permet de créer du HTML dynamique à partir d'objets et d'instances de classe C# y compris des enregistrements de base de données. Handlebars est particulièrement efficace lorsqu'une requête peut renvoyer un nombre inconnu de lignes, comme dans la génération d'une facture.
using HandlebarsDotNet;// A Handlebars template with two placeholdersvar source = @"<div class=""entry""> <h1>{{title}}</h1> <div class=""body""> {{body}} </div> </div>";// Compile it once, then fill it with any object that has matching propertiesvar template = Handlebars.Compile(source);var data = new { title = "My new post", body = "This is my first post!" };string html = template(data);// html now contains://// <div class="entry">// <h1>My new post</h1>// <div class="body">// This is my first post!// </div>// </div>
using HandlebarsDotNet;
// A Handlebars template with two placeholders
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile it once, then fill it with any object that has matching properties
var template = Handlebars.Compile(source);
var data = new { title = "My new post", body = "This is my first post!" };
string html = template(data);
// html now contains:
//
// <div class="entry">
// <h1>My new post</h1>
// <div class="body">
// This is my first post!
// </div>
// </div>
ImportsHandlebarsDotNet' A Handlebars template with two placeholdersDim source = "<div class=""entry""> <h1>{{title}}</h1> <div class=""body""> {{body}} </div> </div>"' Compile it once, then fill it with any object that has matching propertiesDim template = Handlebars.Compile(source)Dim data = New With {.title = "My new post", .body = "This is my first post!"}Dim html AsString = template(data)' html now contains:'' <div class="entry">' <h1>My new post</h1>' <div class="body">' This is my first post!' </div>' </div>
Imports HandlebarsDotNet
' A Handlebars template with two placeholders
Dim source = "<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>"
' Compile it once, then fill it with any object that has matching properties
Dim template = Handlebars.Compile(source)
Dim data = New With {.title = "My new post", .body = "This is my first post!"}
Dim html As String = template(data)
' html now contains:
'
' <div class="entry">
' <h1>My new post</h1>
' <div class="body">
' This is my first post!
' </div>
' </div>
Pour rendre ce HTML, nous pouvons simplement utiliser la méthode RenderHtmlAsPdf.
using HandlebarsDotNet;using IronPdf;// Fill the Handlebars template, then render the resulting HTMLvar template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>");string html = template(new { title = "My new post", body = "This is my first post!" });var renderer = new ChromePdfRenderer();var pdf = renderer.RenderHtmlAsPdf(html);pdf.SaveAs("Handlebars.pdf");
using HandlebarsDotNet;
using IronPdf;
// Fill the Handlebars template, then render the resulting HTML
var template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>");
string html = template(new { title = "My new post", body = "This is my first post!" });
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Handlebars.pdf");
ImportsHandlebarsDotNetImportsIronPdf' Fill the Handlebars template, then render the resulting HTMLDim template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>")Dim html AsString = template(New With {.title = "My new post", .body = "This is my first post!"})Dim renderer = New ChromePdfRenderer()Dim pdf = renderer.RenderHtmlAsPdf(html)pdf.SaveAs("Handlebars.pdf")
Imports HandlebarsDotNet
Imports IronPdf
' Fill the Handlebars template, then render the resulting HTML
Dim template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>")
Dim html As String = template(New With {.title = "My new post", .body = "This is my first post!"})
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Handlebars.pdf")
Vous pouvez en savoir plus sur le langage de modélisation Handlebars et son implémentation en C# sur GitHub.
Ajouter des sauts de page en utilisant HTML5
Une exigence courante dans un document PDF est la pagination. Les développeurs ont besoin de contrôler où les pages PDF commencent et se terminent pour une mise en page propre et lisible.
La façon la plus simple de le faire est avec un truc CSS peu connu qui rendra un saut de page dans n'importe quel document HTML imprimé.
Le HTML fourni fonctionne, mais n'est guère une bonne pratique. Nous conseillons d'ajuster l'attribut media comme dans l'exemple suivant. Une manière si propre et ordonnée de disposer du contenu HTML multi-pages. Parce qu'IronPDF rend avec le type de média screen par défaut, une feuille de style media="print" n'est appliquée que lorsque RenderingOptions.CssMediaType est défini sur PdfCssMediaType.Print (voir Paramètres de conversion ci-dessus).
IronPDF facilite la fusion de documents PDF. L'utilisation la plus courante de cette technique est d'ajouter une page de couverture ou une page de fin à un document PDF rendu existant.
Pour ce faire, nous rendons d'abord une page de couverture, puis utilisons la méthode statique PdfDocument.Merge() pour combiner les deux documents.
using IronPdf;var renderer = new ChromePdfRenderer();// The document body, rendered from a web pagevar pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");// Prepend an existing PDF as the cover page. Merge returns a new document.var cover = PdfDocument.FromFile("CoverPage.pdf");var pdfMerged = PdfDocument.Merge(cover, pdf);pdfMerged.SaveAs("Combined.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// The document body, rendered from a web page
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
// Prepend an existing PDF as the cover page. Merge returns a new document.
var cover = PdfDocument.FromFile("CoverPage.pdf");
var pdfMerged = PdfDocument.Merge(cover, pdf);
pdfMerged.SaveAs("Combined.pdf");
ImportsIronPdfDim renderer = New ChromePdfRenderer()' The document body, rendered from a web pageDim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")' Prepend an existing PDF as the cover page. Merge returns a new document.Dim cover = PdfDocument.FromFile("CoverPage.pdf")Dim pdfMerged = PdfDocument.Merge(cover, pdf)pdfMerged.SaveAs("Combined.pdf")
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' The document body, rendered from a web page
Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
' Prepend an existing PDF as the cover page. Merge returns a new document.
Dim cover = PdfDocument.FromFile("CoverPage.pdf")
Dim pdfMerged = PdfDocument.Merge(cover, pdf)
pdfMerged.SaveAs("Combined.pdf")
Une dernière fonctionnalité C# PDF qu'IronPDF prend en charge est d'ajouter un filigrane aux documents. Cela peut être utilisé pour ajouter un avis à chaque page indiquant qu'un document est "confidentiel" ou un "échantillon".
using IronPdf;using IronPdf.Editing;var renderer = new ChromePdfRenderer();var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");// Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.// The watermark is HTML, so any markup, styling or image can be used.pdf.ApplyWatermark( "<h2 style='color:red; font-size:50px'>SAMPLE</h2>", rotation: 30, opacity: 50, verticalAlignment: VerticalAlignment.Middle, horizontalAlignment: HorizontalAlignment.Center);pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
using IronPdf.Editing;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.
// The watermark is HTML, so any markup, styling or image can be used.
pdf.ApplyWatermark(
"<h2 style='color:red; font-size:50px'>SAMPLE</h2>",
rotation: 30,
opacity: 50,
verticalAlignment: VerticalAlignment.Middle,
horizontalAlignment: HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
ImportsIronPdfImportsIronPdf.EditingDim renderer = New ChromePdfRenderer()Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")' Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.' The watermark is HTML, so any markup, styling or image can be used.pdf.ApplyWatermark("<h2 style='color:red; font-size:50px'>SAMPLE</h2>", rotation:=30, opacity:=50, verticalAlignment:=VerticalAlignment.Middle, horizontalAlignment:=HorizontalAlignment.Center)pdf.SaveAs("C:\Path\To\Watermarked.pdf")
Imports IronPdf
Imports IronPdf.Editing
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
' Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.
' The watermark is HTML, so any markup, styling or image can be used.
pdf.ApplyWatermark("<h2 style='color:red; font-size:50px'>SAMPLE</h2>", rotation:=30, opacity:=50, verticalAlignment:=VerticalAlignment.Middle, horizontalAlignment:=HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
Le code source complet gratuit du convertisseur HTML en PDF C# pour ce tutoriel est disponible en téléchargement sous forme de fichier projet Visual Studio 2022 zippé. Il utilisera son moteur de rendu pour générer des objets de document PDF en C#.
Le téléchargement gratuit contient tout ce dont vous avez besoin pour créer un PDF à partir de HTML - y compris des exemples de code PDF C# fonctionnels pour :
Convertir une chaîne HTML en PDF en utilisant C#
Fichier HTML en PDF en C# (prenant en charge CSS, JavaScript et images)
HTML en PDF en C# en utilisant une URL ("URL en PDF")
Exemples d'édition et de paramètres PDF en C#
Rendu de graphiques de canvas JavaScript tels que d3.js en PDF
La bibliothèque PDF pour C#
Référence de classe
Les développeurs peuvent également être intéressés par la référence de classe IronPdf.PdfDocument :
IronPDF est une bibliothèque PDF puissante et complète conçue pour les développeurs .NET modernes. Avec une conversion HTML en PDF native alimentée par un moteur Chromium avancé, une API intuitive et des mises à jour régulières, elle simplifie le développement tout en garantissant des résultats de haute qualité. Examinons de plus près comment elle se compare à d'autres outils :
PDFSharp
Fonctionnalités principales : PDFsharp est une bibliothèque open-source (MIT) pour créer et éditer des documents PDF en code géré. Elle n'a pas de moteur de rendu HTML, donc convertir du contenu web en PDF nécessite un moteur tiers séparé.
Normes modernes : IronPDF exploite les technologies web modernes, y compris HTML, CSS et JavaScript, grâce à son moteur basé sur Chromium, garantissant que les PDF conservent un aspect et une convivialité contemporains.
Support et mises à jour : PDFsharp est open source et publie une version tous les quelques mois, avec un support commercial vendu séparément par son mainteneur. IronPDF publie des mises à jour mensuelles et des correctifs de sécurité, et chaque licence inclut un support technique professionnel, ce qui est important pour les applications d'entreprise.
wkhtmltopdf
Facilité d'intégration : wkhtmltopdf est un outil en ligne de commande avec une bibliothèque C ; il n'y a pas de package .NET officiel, donc l'utiliser depuis .NET signifie lancer le binaire natif (ou l'appeler via un wrapper tiers tel que DinkToPdf) et expédier ce binaire pour chaque plateforme sur laquelle vous déployez.
Technologie de rendu : wkhtmltopdf rend avec QtWebKit, un fork de WebKit que Qt a déprécié en 2015 et abandonné dans Qt 5.6, donc les fonctionnalités modernes de JavaScript et CSS ne sont pas prises en charge, surtout sur les sites web dynamiques et riches en contenu. Le moteur Chromium d'IronPDF rend les normes web actuelles.
Développement continu : la dernière version de wkhtmltopdf était 0.12.6 en juin 2020 et son dépôt GitHub a été archivé en janvier 2023, donc il n'y a pas de support du fournisseur. IronPDF continue d'évoluer avec des mises à jour mensuelles et un service client dédié.
iTextSharp
Rendu HTML en PDF : iText convertit HTML via son add-on pdfHTML séparé, un moteur de mise en page CSS plutôt qu'un navigateur, et la ligne iTextSharp 5 héritée ne reçoit maintenant que des correctifs de sécurité. IronPDF rend HTML avec un moteur Chromium intégré dans le package principal, sans add-on requis.
Expérience développeur : l'API d'iText fonctionne au niveau des objets PDF et des éléments de mise en page, ce qui est puissant mais signifie plus de code pour les tâches quotidiennes. IronPDF offre une API C# propre et intuitive, simplifiant le codage et accélérant la livraison des projets.
Maintenance et support : l'utilisation gratuite d'iText est sous l'AGPL, avec le support du fournisseur réservé aux licences commerciales, et iTextSharp 5.x est en fin de vie à part les correctifs de sécurité. IronPDF inclut un support professionnel et des mises à jour mensuelles avec chaque licence.
Aspose.PDF
Qualité de conversion : Aspose.PDF convertit HTML avec son propre moteur de mise en page plutôt qu'un navigateur. Sa documentation convertit une page web en récupérant d'abord le HTML avec HttpClient dans un flux et en le passant à Document avec HtmlLoadOptions, plutôt que de rendre directement à partir d'une URL. Dans notre test r/nfl ci-dessous, la sortie était presque vide : le logo de la communauté, un titre et quelques cases vides. Le moteur Chromium d'IronPDF rend directement une URL, JavaScript inclus.
Utilisabilité de l'API : l'API d'Aspose.PDF peut être verbeuse, tandis qu'IronPDF se concentre sur une expérience conviviale pour les développeurs qui minimise le temps de configuration et améliore la productivité.
Fidélité de sortie : Parce qu'IronPDF rend avec Chromium, le PDF correspond à ce que Chrome montre pour le même HTML, ce qui rend la conception et le débogage prévisibles pour la génération de PDF à haut volume.
Syncfusion PDF
Complexité de l'API : Syncfusion PDF est une bibliothèque capable avec une surface d'API plus large à apprendre. IronPDF, en revanche, fournit une API simple pour une intégration rapide.
Moteur de rendu : Le convertisseur HTML de Syncfusion utilise maintenant le moteur Chromium Blink ; ses anciens moteurs WebKit et Internet Explorer ont été marqués obsolètes dans Essential Studio 2022 Volume 3. Dans notre test r/nfl ci-dessous, la sortie de Syncfusion a conservé le flux principal mais a supprimé les panneaux de navigation et de communauté, tandis que le moteur Chromium d'IronPDF a rendu toute la page.
Au-delà de la conversion : Le package d'IronPDF couvre également les signatures numériques, les annotations, le remplissage de formulaires et le tamponnage de codes-barres, donc la même bibliothèque gère le reste du flux de travail du document.
Comparaison de rendu
Pour comparer la qualité de conversion HTML en PDF de ces bibliothèques, nous avons utilisé une page de communauté Reddit, r/nfl, qui contient du contenu dynamique, des mises à jour en direct, du CSS moderne et des éléments basés sur JavaScript :
https://www.reddit.com/r/nfl/
Voici les résultats d'une seule exécution avec les paramètres par défaut de chaque bibliothèque. Syncfusion et Aspose.PDF ont été exécutés en tant que versions d'évaluation, c'est pourquoi leur sortie porte des filigranes d'évaluation (cliquez sur chaque image pour l'agrandir) :
IronPDF
PDF bien formaté et visuellement précis, préservant le contenu dynamique et le style moderne.
SyncFusion
Converti avec une version d'évaluation. Le flux principal, le contenu des publications et le style sont passés dans une mise en page étroite à une seule colonne, mais la navigation à gauche et le panneau communautaire à droite ont été supprimés.
Aspose.PDF
Version d'évaluation ; nécessitait de télécharger d'abord le HTML (Aspose.PDF charge le HTML à partir d'un flux plutôt qu'une URL). La sortie était presque vide : le logo de la communauté, un titre et quelques cases vides.
Wkhtmltopdf
wkhtmltopdf a terminé la conversion, mais le résultat est le texte et les images de la page sans aucune de sa mise en page, de son style, de ses éléments dynamiques ou de son interactivité. Cela rend wkhtmltopdf inadapté aux pages web modernes et dynamiques.
Veuillez noter: PDFsharp n'a pas de moteur de rendu HTML, et iText convertit HTML uniquement via son add-on pdfHTML séparé, donc aucun n'a été inclus dans ce test de rendu de navigateur.
Conclusion
Pour les développeurs .NET à la recherche d'une solution PDF moderne et fiable, IronPDF est un choix solide. Sa conversion HTML en PDF basée sur Chromium, sa facilité d'utilisation, ses mises à jour régulières et son large ensemble de fonctionnalités en font un choix de premier plan. Que vous travailliez sur un petit projet ou une application d'entreprise à grande échelle, IronPDF améliore la productivité tout en évitant les risques associés aux bibliothèques obsolètes ou non prises en charge. Conçu pour les applications commerciales, IronPDF maintient vos projets sur une bibliothèque maintenue et prise en charge.
Dans notre test avec une page web dynamique du monde réel, IronPDF a produit le rendu le plus complet et précis. Syncfusion a supprimé les panneaux de navigation et de communauté. Aspose.PDF nécessitait de télécharger d'abord le HTML et a quand même rendu presque aucune partie de la page. wkhtmltopdf a produit le texte et les images sans le style de la page, un mauvais choix pour les sites modernes.
Pour les flux de travail modernes HTML en PDF, cette combinaison de précision de rendu et d'une petite API lisible est ce qui distingue IronPDF.
Découvrez la suite complète de fonctionnalités d'IronPDF qui convertit facilement le HTML dynamique et lourd en CSS en PDF. Testez-le maintenant avec notre essai gratuit.
Comment convertir HTML en PDF en utilisant IronPDF en C# ?
Pour convertir HTML en PDF en utilisant IronPDF, vous devez initialiser le ChromePdfRenderer, rendre le contenu HTML en tant que PDF en utilisant la méthode RenderHtmlAsPdf, puis enregistrer le PDF dans un fichier.
Quelles sont les exigences système pour IronPDF ?
IronPDF prend en charge .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard et .NET Framework sur Windows, macOS, Linux, Docker, Azure et AWS.
Puis-je utiliser IronPDF avec d'autres langages de programmation ?
Oui, IronPDF peut être utilisé avec plusieurs langages à la fois à l'intérieur et à l'extérieur de l'écosystème .NET, y compris F#, VB.NET, Python, Java et Node.js.
Comment puis-je ajouter des en-têtes et pieds de page personnalisés à un PDF en utilisant IronPDF ?
Avec IronPDF, vous pouvez ajouter des en-têtes et pieds de page en utilisant la classe TextHeaderFooter pour le contenu basé sur du texte ou la classe HtmlHeaderFooter pour le contenu HTML enrichi.
Est-il possible de rendre un PDF à partir d'une URL existante avec IronPDF ?
Oui, vous pouvez rendre un PDF à partir d'une URL existante en utilisant la méthode RenderUrlAsPdf dans IronPDF.
IronPDF prend-il en charge le rendu avancé de CSS et JavaScript ?
Oui, IronPDF prend en charge CSS3 et JavaScript avancés, y compris jQuery et AJAX, offrant un rendu précis des conceptions web modernes.
Puis-je appliquer un modèle HTML pour la création de PDF en lot dans IronPDF ?
Oui, vous pouvez utiliser des techniques de modélisation C#, y compris String.Format et Handlebars.NET, pour générer dynamiquement des PDFs avec IronPDF.
Comment IronPDF se compare-t-il avec d'autres bibliothèques PDF ?
IronPDF rend HTML avec un moteur Chromium intégré, propose des mises à jour mensuelles et dispose d'une API C# compacte. Le tutoriel le compare avec PdfSharp, wkhtmltopdf, iTextSharp, Aspose.PDF et Syncfusion PDF, y compris un test de rendu côte à côte d'une page web dynamique.
Puis-je ajouter des filigranes aux PDFs avec IronPDF ?
Oui, IronPDF vous permet d'ajouter des filigranes de texte ou d'image à vos documents PDF.
Existe-t-il une version d'essai disponible pour IronPDF ?
Oui, vous pouvez vous inscrire pour une clé d'essai gratuite de 30 jours pour tester les fonctionnalités d'IronPDF avant d'acheter une licence.
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, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.