using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Le tutoriel suivant vous guidera à travers le processus d'utilisation d'IronPDF en tant queGénérateur de PDF C#. Il couvre les bases ainsi que de nombreux sujets avancés C# PDF.
HTML vers PDF C#
Télécharger la bibliothèque C# pour convertir HTML en PDF
Une fois IronPDF installé et référencé dans votre projet, vous pouvez commencer à l'utiliser immédiatement en tapant quelques chaînes de caractères :
var ChromePdfRenderer = new ChromePdfRenderer(); // new instance of ChromePdfRenderer
var ChromePdfRenderer = new ChromePdfRenderer(); // new instance of ChromePdfRenderer
Dim ChromePdfRenderer As New ChromePdfRenderer() ' new instance of ChromePdfRenderer
$vbLabelText $csharpLabel
puis si vous devez transformer du HTML en PDF
// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
' html to turn into pdf
Dim html = "<h1>Hello World!</h1><br><p>This is IronPdf.</p>"
' turn html to pdf
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"))
$vbLabelText $csharpLabel
ou si vous voulez transformer une page web en fichier PDF
// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
' uri of the page to turn into pdf
Dim uri As New Uri("http://www.google.com/ncr")
' turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
$vbLabelText $csharpLabel
Et c'est tout!
Les résultats correspondants sont les suivants :
Le résultat de la conversion de HTML en PDF**
Le résultat de la conversion d'une page web en PDF
L'exemple de code se trouve dans le projet IronPDFDemo.HelloWorld.
Étape 3 : RenderHtmlAsPdf
Exemple 1
Pour évaluer un exemple plus concret, imaginons une facture HTML qui doit être transformée en PDF. Voici le code qui permet de le faire.
Note: Vous pouvez trouver la facture html sous le projet IronPDFDemo.DemoWebSite(~/Static/TestInvoice1.html). Veuillez noter que la facture comporte une feuille de style CSS personnalisée pour le type de média "impression".
La facture source se présente comme suit dans le navigateur :
Pour transformer ce fichier en fichier PDF, on utilise des codes similaires à ceux de l'exemple HelloWorld ci-dessus, la différence étant le fichier HTML source.
// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
' read html from file
Dim html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"))
Dim ChromePdfRenderer As New ChromePdfRenderer()
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"))
$vbLabelText $csharpLabel
Le résultat est le suivant :
Générer un fichier PDF à partir de HTML
Très bien! Vous trouverez l'exemple de code dans le projet IronPDFDemo.RenderHtmlAdPdfDemo.
Cette section permettra de personnaliser le PDF résultant de l'exemple 1. Par exemple, elle ajoutera des marges personnalisées, un en-tête avec le titre du document, un pied de page avec la date de création et les numéros de page, ainsi que des feuilles de style CSS personnalisées pour le type de média "impression" d'une facture standard. Pour ce faire, une instance de ChromePdfRenderOptions est initialisée et passée dans le constructeur de ChromePdfRenderer.
var pdfRenderingOptions= new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
var pdfRenderingOptions= new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
Dim pdfRenderingOptions= New ChromePdfRenderOptions() With {
.MarginTop = 50,
.MarginBottom = 50,
.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
},
.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
},
.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
}
Dim chromePdfRenderer As New ChromePdfRenderer(pdfRenderingOptions)
$vbLabelText $csharpLabel
Astuce: Au lieu de passer les options en paramètre dans le constructeur, vous pouvez définir le champ correspondant pour une instance de ChromePdfRenderer :
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
Dim chromePdfRenderer As New ChromePdfRenderer()
chromePdfRenderer.RenderingOptions = pdfRenderingOptions
$vbLabelText $csharpLabel
Note: L'en-tête et le pied de page sont dotés d'une fonctionnalité de fusion, ce qui signifie que tous les champs de fusion({page}, {nombre total de pages}, {url}, {date}, {temps}, {titre html}, {titre du pdf}) peuvent être alimentées avec les données correspondantes.
Le reste du code est identique à celui de l'exemple 1. Le résultat est le suivant :
Générer une facture avec en-tête et pied de page
Les marges personnalisées, les en-têtes, les pieds de page et les feuilles de style CSS pour le type de média "impression" sont maintenant en place. Vous trouverez l'exemple de code dans le projet IronPDFDemo.RenderHtmlAdPdfDemo. D'autres paramètres peuvent être trouvés dans leRéférence de l'API IronPDF.
Étape 4 : RenderUrlAsPdf
Mise en place
Pour exécuter les échantillons de cette section, vous devez héberger localement le site IronPDFDemo.DemoWebSite. Pour ce faire, dans IIS Express :
Naviguer vers DemoWebSite
Clic droit > Définir comme projet de démarrage
Démarrer sans débogage(Ctrl+F5)
Naviguez jusqu'à votre{baseurl}/Static/TestInvoice1.html pour vérifier qu'il fonctionne. Voici l'URL http://localhost:51169/Static/TestInvoice1.html (sera le même pour vous si vous ne modifiez pas les paramètres correspondants du projet).
Exemple 1
Dans cette section, la facture hébergée de DemoWebSite est convertie en PDF en utilisant le même code que celui de l'exemple HelloWorld. La différence réside dans l'URL hébergée :
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
Dim uri As New Uri("http://localhost:51169/Static/TestInvoice1.html")
Dim urlToPdf = New ChromePdfRenderer()
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"))
$vbLabelText $csharpLabel
Le résultat est le suivant :
Générer un site web hébergé en PDF
C'est très bien et ça ressemble à ce que l'on attendait. Vous trouverez l'exemple de code dans le projet IronPDFDemo.RenderUrlAsPdfDemo.
Exemple 2
De nombreux sites web sont souvent protégés par une méthode d'authentification. Cette section utilise un nom d'utilisateur et un mot de passe fournis pendant le processus de rendu d'un fichier PDF avec quelques personnalisations : marges personnalisées, un en-tête avec le titre du document, un pied de page avec la date de création et les pages, et un CSS personnalisé pour le type de média "impression". L'URL de la facture est la suivante : http://localhost:51169/Facture.
Accéder à http://localhost:51169/Invoice aboutit au formulaire "Authentification requise" :
Formulaire d'authentification requis
Note: Les informations d'identification sont "testUser"/"testPassword".
Comment contourner l'authentification ? En définissant HttpLoginCredentials :
var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
PrintOptions = new ChromePdfRenderer()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// setting login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
PrintOptions = new ChromePdfRenderer()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// setting login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
Dim uri As New Uri("http://localhost:51169/Invoice")
Dim urlToPdf = New ChromePdfRenderer With {
.PrintOptions = New ChromePdfRenderer() With {
.MarginTop = 50,
.MarginBottom = 50,
.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
},
.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
},
.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
.LoginCredentials = New HttpLoginCredentials() With {
.NetworkUsername = "testUser",
.NetworkPassword = "testPassword"
}
}
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"))
$vbLabelText $csharpLabel
Note: La même personnalisation est utilisée que pour ChromePdfRenderer Example2.
Le résultat est le suivant :
Générer un site HTML avec des informations d'identification pour un fichier PDF
Tout est en place. Vous trouverez un exemple de code dans le projet IronPDFDemo.RenderUrlAsPdfDemo. Si vous vous demandez à quoi ressemblerait le résultat sans HttpLoginCredentials, le voici :
Générer un fichier PDF vide sans informations d'identification
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier