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 la IronPDF.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 le Razor.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 :

Bibliothèque NuGet C# pour PDF

Installer avec NuGet

Install-Package IronPdf
ou
Java PDF JAR

Télécharger DLL

Télécharger la DLL

Installation manuelle dans votre projet

Bibliothèque NuGet C# pour PDF

Installer avec NuGet

Install-Package IronPdf
ou
Java PDF JAR

Télécharger DLL

Télécharger la DLL

Installation manuelle dans votre projet

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

Première étape :
green arrow pointer

Découvrez IronPDF sur NuGet pour une installation rapide et un déploiement facile. Avec plus de 8 millions de téléchargements, il transforme PDF avec C#.

Bibliothèque NuGet C# pour PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

Envisagez d'installer le IronPDF DLL directement. Téléchargez et installez-le manuellement pour votre projet ou sous forme de GAC : {{lienDllAfficher}}

Installation manuelle dans votre projet

Télécharger la DLL

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ées le 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 des numé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");
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
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.

Cliquez ici pour télécharger le projet.

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.