Comment convertir les vues Razor en PDF de manière transparente ?

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

par Chaknith Bin

Le terme "headless rendering" (rendu sans tête) fait référence au processus de rendu du contenu web sans interface utilisateur graphique(GUI) ou la fenêtre du navigateur. Alors que laIronPdf.Extensions.Razor est très utile, il n'offre pas de capacités de rendu sans tête. Le rendu sans tête peut combler le manque de cas d'utilisation que le package IronPDF.Extensions.Razor ne peut pas combler.

Nous utiliserons leRazor.Templating.Core paquet pour convertir de cshtml(Points de vue sur les rasoirs) en html, puis utiliser IronPDF pour générer des documents PDF à partir de ce format.

Cet article est inspiré de la vidéo YouTube suivante :

Commencez avec IronPDF

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

Première étape :
green arrow pointer


Installez le package Razor.Templating.Core pour convertir les vues Razor en documents html dans une application web ASP.NET Core.

Install-Package Razor.Templating.Core

Rendre les vues Razor en PDF

Vous aurez besoin d'une application Web ASP.NET Core(Modèle-Vue-Contrôleur) pour convertir les vues en fichiers PDF.

Ajouter une vue

  • Cliquez avec le bouton droit de la souris sur le dossier "Home". Choisissez "ajouter" et "ajouter une vue"
  • Créez une vue Razor vide et nommez-la "Data.cshtml".

    Ajouter une vue

Modifier le fichier Data.cshtml

Ajoutez la chaîne HTML que vous souhaitez rendre au format PDF :

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
HTML

Modifier le fichier Program.cs

Dans le fichier "Program.cs", ajoutez le code suivant. Le code ci-dessous utilise la méthode RenderAsync de la bibliothèque Razor.Templating.Core pour convertir les vues Razor en HTML. Deuxièmement, il instancie la classe ChromePdfRenderer et transmet la chaîne HTML retournée à la méthode RenderHtmlAsPdf. Les utilisateurs peuvent utiliser les Options de rendu pour accéder à une série de fonctionnalités, telles que l'ajout d'options de rendu personnaliséesle texte, y compris les en-têtes et pieds de page HTML dans le PDF résultant, en définissant des marges personnalisées et en appliquant desnuméros de page.

app.MapGet("/PrintPdf", async () =>
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", Async Function()
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
	IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All

	Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")

	Dim renderer As New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot")

	Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
End Function)
VB   C#

Modifier les liens de l'actif

Naviguez jusqu'au dossier "Views" -> dossier "Shared" -> fichier "_Layout.cshtml". Dans les balises de lien, remplacez "~/" par "./".

Ceci est important car le "~/" ne fonctionne pas bien avec IronPDF.

Exécuter le projet

Elle vous montrera comment exécuter le projet et générer un document PDF.

Exécuter un projet ASP.NET Core MVC

Sortie PDF

Télécharger le projet ASP.NET Core MVC

Vous pouvez télécharger le code complet de ce guide. Il se présente sous la forme d'un fichier zippé que vous pouvez ouvrir dans Visual Studio en tant qu'application web ASP.NET Core(Modèle-Vue-Contrôleur) projet.

Télécharger le code du projet ASP.NET Core MVC

Chaknith related to Télécharger le projet ASP.NET Core MVC

Chaknith Bin

Ingénieur logiciel

Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.