UTILISATION DE LA SUITE IRON

Créer un PDF en C# à partir d'un fichier HTML

IronPDF convertit les documents HTML en documents PDF par programmation.

Comment créer un PDF en C# - Exemple de conversion HTML vers PDF

Le code source de cet article complet est disponible pour C# sous forme de téléchargement du code source du projet C# HTML vers PDF .

Le tutoriel suivant vous guidera tout au long du processus d'utilisation d'IronPDF en tant que générateur PDF C# . Il couvre les bases ainsi que de nombreux sujets avancés liés au C# au format PDF .

Guide de conversion HTML vers PDF

Cette démonstration vous présente des exemples d'utilisation d'IronPdf. Demandez des démonstrations supplémentaires de cas d'utilisation à Iron Software .

La démo comprend des exemples Hello World, RenderHtmlAsPdf et RenderUrlAsPdf . Tous les exemples se trouvent dans les projets correspondants de la solution de démonstration IronPDF.

Étape 1 : Installation

Vous pouvez installer IronPdf via NuGet. The package name is IronPDF NuGet Package.

Or you can use the Direct Library Download.

Étape 2 : Bonjour le monde

Une fois IronPDF installé et référencé dans votre projet, vous pouvez commencer à l'utiliser immédiatement en saisissant quelques chaînes de caractères :

// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();
// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();
' Create a new instance of ChromePdfRenderer
Dim chromePdfRenderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

Ensuite, si vous devez convertir du HTML en PDF :

// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";

// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);

// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";

// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);

// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
' Define HTML content to turn into PDF
Dim html = "<h1>Hello World!</h1><br><p>This is IronPdf.</p>"

' Render the HTML string as a PDF
Dim pdf = chromePdfRenderer.RenderHtmlAsPdf(html)

' Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"))
$vbLabelText   $csharpLabel

Ou si vous souhaitez convertir une page web en fichier PDF :

// URI of the page to turn into PDF
var uri = new Uri("http://www.google.com/ncr");

// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);

// Save the resulting PDF to a 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");

// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);

// Save the resulting PDF to a 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")

' Render the webpage as a PDF
Dim pdf = chromePdfRenderer.RenderUrlAsPdf(uri)

' Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
$vbLabelText   $csharpLabel

Et voilà ! Les résultats correspondants sont :

Création d'un PDF à partir d'un fichier HTML en C#, Figure 1 : Résultat de la conversion d'un fichier HTML en PDF Résultat de la conversion HTML en PDF**

Création d'un PDF en C# à partir d'un fichier HTML, Figure 2 : Résultat de la conversion d'une page web en PDF Résultat de la conversion d'une page web en PDF

Vous trouverez un exemple de code dans le projet IronPDFDemo.HelloWorld.

Étape 3 : RenderHtmlAsPdf

Exemple 1

Pour illustrer cela par un exemple plus concret, imaginez une facture HTML qui doit être convertie en PDF. Voici le code permettant de faire cela.

Remarque : Vous trouverez le code HTML de la facture dans le projet IronPDFDemo.DemoWebSite (~/Static/TestInvoice1.html). Veuillez noter que la facture comporte un CSS personnalisé pour le type de support " impression ".

La facture source ressemble à ceci dans le navigateur :

! Créer un PDF en C# à partir d'un fichier HTML, Figure 4 :


Pour convertir cela en un fichier PDF, des codes similaires à l'exemple HelloWorld ci-dessus sont utilisés, 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 :

Création d'un PDF à partir d'un fichier HTML en C#, Figure 5 : Générer un fichier PDF à partir d'un fichier HTML Générer un fichier PDF à partir de HTML

Superbe ! Vous trouverez un exemple de code dans le projet IronPDFDemo.RenderHtmlAdPdfDemo.

Consultez également cette question sur l'utilisation de documents HTML ou de chaînes de caractères avec des tableaux d'octets dans IronPDF.

Exemple 2

Cette section vous aidera à personnaliser le PDF résultant de l'exemple 1. Par exemple, elle ajoutera des marges personnalisées, un en-tête avec un titre de document, un pied de page avec une date de création et des numéros de page, ainsi qu'une CSS personnalisée pour le type de média " impression " qu'une facture standard possède. Pour ce faire, une instance de ChromePdfRenderOptions est initialisée et transmise au constructeur ChromePdfRenderer .

// Configure rendering options with margins, headers, and footers
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);
// Configure rendering options with margins, headers, and footers
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);
' Configure rendering options with margins, headers, and footers
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

Conseil : au lieu de passer des options en tant que paramètre dans le constructeur, vous pouvez définir le champ correspondant pour une instance 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

Remarque : Les fonctionnalités d'en-tête et de pied de page disposent d'une fonctionnalité de fusion, ce qui signifie que tous les champs de fusion ( {page} , {total-pages} , {url} , { {date} } , { {time} , {html-title} , {pdf-title} ) peuvent être remplis avec les données correspondantes.

Le reste du code est identique à celui de l'exemple 1. Le résultat est :

! Créer un PDF en C# à partir d'un fichier HTML, Figure 6 : Générer une facture avec en-tête et pied de page 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 le CSS pour le type de média " print " sont désormais en place. Vous trouverez un exemple de code dans le projet IronPDFDemo.RenderHtmlAdPdfDemo. Vous trouverez davantage de paramètres dans la documentation de l'API IronPDF .

Étape 4 : RenderUrlAsPdf

Installation

Pour exécuter les exemples de cette section, vous devez héberger localement le site web IronPDFDemo.DemoWebSite. Pour ce faire dans IIS Express :

  1. Accédez au site web de démonstration
  2. Clic droit > Définir comme projet de démarrage
  3. Démarrer sans débogage (Ctrl+F5)
  4. Accédez à votre {baseurl}/Static/TestInvoice1.html pour vous assurer qu'il fonctionne. Voici l'URL http://localhost:51169/Static/TestInvoice1.html (elle sera la même pour vous si vous ne modifiez pas les paramètres du projet correspondant).

Exemple 1

Dans cette section, la facture du site web de démonstration hébergé est convertie en PDF en utilisant le même code que dans l'exemple HelloWorld. La différence réside dans l'URL hébergée :

// URL of the hosted invoice webpage
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"));
// URL of the hosted invoice webpage
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"));
' URL of the hosted invoice webpage
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 :

Créer un PDF en C# à partir d'un fichier HTML, Figure 7 : Générer un site web hébergé au format PDF Générer un site web hébergé au format PDF

C'est parfait et ça correspond à mes attentes. Vous trouverez un 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 lors du processus de rendu d'un fichier PDF avec certaines 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 " print ". L'URL de la facture est à l' http://localhost:51169/Invoice .

L'accès à http://localhost:51169/Invoice affiche le formulaire " Authentification requise " :

! Créer un PDF en C# à partir d'un fichier HTML, Figure 8 : Formulaire d'authentification requis Formulaire d'authentification requis

> Remarque : Les identifiants sont " testUser "/" testPassword ".

Alors, comment contourner l'authentification ? En définissant HttpLoginCredentials :

// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");

// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
    RenderingOptions = 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
    },

    // Set 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"));
// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");

// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
    RenderingOptions = 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
    },

    // Set 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"));
' URL of the protected invoice webpage
Dim uri As New Uri("http://localhost:51169/Invoice")

' Configure renderer with login credentials to bypass authentication
Dim urlToPdf = New ChromePdfRenderer With {
	.RenderingOptions = 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
	},
	.LoginCredentials = New HttpLoginCredentials() With {
		.NetworkUsername = "testUser",
		.NetworkPassword = "testPassword"
	}
}

Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"))
$vbLabelText   $csharpLabel

> Remarque : La même personnalisation est utilisée que pour l'exemple ChromePdfRenderer2.

Le résultat est :

Création d'un PDF en C# à partir d'un fichier HTML, Figure 9 : Générer un site HTML avec des identifiants pour un fichier PDF Générer un site HTML avec des identifiants 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 :

Création d'un PDF en C# à partir d'un fichier HTML, Figure 10 : Générer un fichier PDF vide sans identifiants Générer un fichier PDF vide sans identifiants

Voir aussi le tutoriel de Jean sur la conversion de HTML en PDF avec .NET

De plus, IronPDF peut également interagir avec les fichiers PDF de différentes manières :

Extraire des images et du texte de fichiers PDF grâce à la reconnaissance optique de caractères (OCR) Modifiez le contenu HTML du site web que vous avez converti.