Comment convertir des pages Razor en PDFs dans une application Web ASP .NET Core

Comment convertir des pages Razor en PDF dans une application ASP.NET Core C&#35 ;

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

IronPDF permet une conversion transparente des pages Razor (fichiers .cshtml) en documents PDF dans les applications ASP.NET Core à l'aide de la méthode RenderRazorToPdf, simplifiant ainsi la génération de PDF à partir de contenu web avec une prise en charge complète du rendu C# et HTML.

Une page Razor est un fichier avec une extension .cshtml qui combine C# et HTML pour générer du contenu web. Dans ASP.NET Core, les Razor Pages sont un moyen plus simple d'organiser le code pour les applications web, ce qui les rend idéales pour les pages simples qui sont en lecture seule ou qui font de la simple saisie de données.

Une application Web ASP.NET Core est une application web construite avec ASP.NET Core, un framework multiplateforme pour le développement d'applications Web modernes.

IronPDF simplifie le processus de création de fichiers PDF à partir de pages Razor dans un projet d'application Web ASP.NET Core. La génération de PDF se fait ainsi de manière simple dans les applications web ASP.NET Core.

Quickstart : convertir les pages Razor en PDF en quelques secondes

Convertissez vos pages Razor en PDF de haute qualité dans une application ASP.NET Core. En utilisant la méthode RenderRazorToPdf, vous pouvez transformer des fichiers CSHTML en documents PDF, optimisant ainsi votre flux de travail et améliorant la distribution des documents. Ce guide vous présente les étapes simples à suivre pour y parvenir en quelques minutes.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronPDF avec le gestionnaire de packages NuGet

    PM > Install-Package IronPdf

  2. Copiez et exécutez cet extrait de code.

    // Installer-Package IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Introduction

<TODO : Ajouter une image ici -->

Les pages Razor constituent un moyen puissant et intuitif de créer du contenu web dynamique dans les applications ASP.NET Core. Associés aux capacités de rendu d'IronPDF, les développeurs peuvent créer des documents PDF professionnels directement à partir de leur contenu web. Cette approche supprime la logique complexe de génération de PDF et vous permet d'utiliser vos compétences existantes en HTML et CSS.

L'intégration entre IronPDF et Razor Pages est particulièrement précieuse pour générer des rapports, des factures, des certificats et tout autre document nécessitant une présentation dynamique des données. En utilisant la même syntaxe Razor que celle que vous connaissez déjà, vous pouvez maintenir la cohérence entre vos vues web et vos sorties PDF.

Quels sont les packages NuGet dont j'ai besoin pour la conversion de Razor en PDF?

Le paquet IronPdf.Extensions.Razor est une extension du paquet principal IronPdf. Les packages IronPdf.Extensions.Razor et IronPdf sont tous deux nécessaires pour effectuer le rendu des pages Razor en documents PDF dans une application Web ASP.NET Core. Pour obtenir des instructions d'installation détaillées, consultez notre guide survol de l'installation.

# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Installer-Package IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Installer-Package IronPdf.Extensions.Razor
SHELL
Bibliothèque C# NuGet pour PDF

Installer avec NuGet

Installer-Package IronPdf.Extensions.Razor

Comment convertir des pages Razor en PDF dans ASP.NET Core?

Vous aurez besoin d'un projet ASP.NET Core Web App pour convertir les pages Razor en fichiers PDF. Le processus implique la création d'un modèle pour vos données, la mise en place d'une page Razor pour afficher ces données, puis l'utilisation de la méthode RenderRazorToPdf d'IronPDF pour générer la sortie PDF.

Pourquoi ai-je besoin d'une classe de modèle pour la génération de PDF ?

Les classes de modèle constituent l'épine dorsale de la représentation des données dans vos pages Razor. Ils fournissent un moyen structuré de transmettre des données de la logique de votre contrôleur à votre vue, en garantissant la sécurité des types et la maintenabilité. Lors de la création de PDF, ces modèles deviennent encore plus cruciaux car ils définissent la structure exacte des données qui apparaîtront dans le document final.

  • Créez un nouveau dossier dans le projet et nommez-le "Models".
  • Ajoutez une classe C# standard au dossier et nommez-la "Person". Cette classe servira de modèle pour les données individuelles. Utilisez l'extrait de code suivant :
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
$vbLabelText   $csharpLabel

Comment configurer une page Razor pour la conversion PDF?

Ajoutez une page Razor vide au dossier "Pages" et nommez-la "persons.cshtml".

  • Modifiez le fichier "Persons.cshtml" nouvellement créé en utilisant l'exemple de code fourni ci-dessous.

Le code ci-dessous affiche les informations dans le navigateur. Remarquez comment la syntaxe Razor permet une intégration transparente du code C# au sein du HTML, ce qui la rend parfaite pour générer du contenu dynamique pouvant être converti en PDF :

@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in ViewData["personList"] as List<Person>)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<form method="post">
    <button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in ViewData["personList"] as List<Person>)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<form method="post">
    <button type="submit">Print</button>
</form>
HTML

Rendre les pages Razor en PDF

<TODO : Ajouter une image ici -->

Ensuite, le code ci-dessous instancie d'abord la classe ChromePdfRenderer. Passer this à la méthode RenderRazorToPdf suffit pour convertir cette page Razor en document PDF.

Vous avez un accès complet aux fonctionnalités disponibles dans RenderingOptions. Ces fonctionnalités incluent la possibilité d'appliquer des numéro de page au PDF généré, de définir des marges personnalisées, et d'ajouter du texte personnalisé ainsi que des en-têtes et pieds de page HTML. Vous pouvez également configurer des métadonnées pour vos PDF afin de garantir une identification et une recherche correctes des documents.

  • Ouvrez le menu déroulant du fichier "Persons.cshtml" pour voir le fichier "Persons.cshtml.cs".
  • Modifiez le "Persons.cshtml.cs" avec le code ci-dessous.
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;

namespace RazorPageSample.Pages
{
    public class PersonsModel : PageModel
    {
        [BindProperty(SupportsGet = true)]
        public List<Person> Persons { get; set; }

        // Handle GET request to load initial data
        public void OnGet()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;
        }

        // Handle POST request to convert Razor page to PDF
        public IActionResult OnPost()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;

            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render Razor Page to PDF document
            PdfDocument pdf = renderer.RenderRazorToPdf(this);

            // Return the generated PDF file with appropriate content headers
            Response.Headers.Add("Content-Disposition", "inline");
            return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");

            // Optionally view the output PDF in browser (uncomment below line if needed)
            // return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;

namespace RazorPageSample.Pages
{
    public class PersonsModel : PageModel
    {
        [BindProperty(SupportsGet = true)]
        public List<Person> Persons { get; set; }

        // Handle GET request to load initial data
        public void OnGet()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;
        }

        // Handle POST request to convert Razor page to PDF
        public IActionResult OnPost()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;

            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render Razor Page to PDF document
            PdfDocument pdf = renderer.RenderRazorToPdf(this);

            // Return the generated PDF file with appropriate content headers
            Response.Headers.Add("Content-Disposition", "inline");
            return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");

            // Optionally view the output PDF in browser (uncomment below line if needed)
            // return File(pdf.BinaryData, "application/pdf");
        }
    }
}
$vbLabelText   $csharpLabel

La méthode RenderRazorToPdf renvoie un objet PdfDocument qui peut faire l'objet d'un traitement et d'une édition supplémentaires. Vous pouvez exporter le PDF au format PDFA ou PDFUA, appliquer une signature numérique au document PDF rendu, ou fusionner et diviser des documents PDF. La méthode vous permet également de faire pivoter les pages, d'ajouter des annotations ou des signets et d'apposer des filigranes personnalisés sur votre PDF.

Pour une meilleure gestion des documents, vous pouvez également compresser les PDF afin de réduire la taille des fichiers sans compromettre la qualité. Ceci est particulièrement utile lorsqu'il s'agit de rapports volumineux ou lorsque la bande passante est un problème. En outre, les capacités d'édition étendues fournies par IronPDF sont documentées dans notre tutoriel complet sur l'édition de PDF.

Comment ajouter la navigation pour la page de génération de PDF?

La navigation est cruciale pour l'expérience utilisateur dans votre application ASP.NET Core. En intégrant la page de génération de PDF dans votre navigation principale, les utilisateurs peuvent facilement accéder à la fonctionnalité sans avoir à taper manuellement les URL.

  • Accédez au dossier Pages -> dossier Shared -> _Layout.cshtml. Placez l'élément de navigation "Personne" après "Accueil".

Assurez-vous que la valeur de l'attribut asp-page correspond exactement à notre nom de fichier, qui dans ce cas est "Persons". Cela permet de garantir un acheminement correct au sein de votre application ASP.NET Core :

<header>
    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>
<header>
    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>
HTML

Qu'est-ce qui se passe quand je lance la génération de PDF?

Ce document vous montre comment exécuter le projet et générer un document PDF. Lorsque vous cliquez sur le lien de navigation "Personne", les données s'affichent sous forme de tableau. Cliquer sur le bouton "Imprimer" déclenche le processus de génération de PDF, convertissant la vue actuelle de Razor Page en un document PDF téléchargeable.

Visual Studio showing C# PersonsModel class with OnGet and OnPostAsync methods for PDF generation using IronPDF

Le PDF généré conserve tous les styles et formats de votre page Razor, ce qui garantit un aspect cohérent entre votre vue web et la sortie PDF. Cette approche est particulièrement utile pour générer des rapports, des factures ou tout autre document nécessitant des données provenant de la base de données ou de la logique métier de votre application.

Où puis-je télécharger un exemple complet d'application Web ASP.NET Core?

Vous pouvez télécharger le code complet de ce guide sous forme de fichier zippé, que vous pouvez ouvrir dans Visual Studio en tant que projet Web App ASP.NET Core.

Téléchargez le projet RazorPageSample.zip Web App ASP.NET Core

Questions Fréquemment Posées

Comment convertir des pages Razor en PDF dans ASP.NET Core ?

Vous pouvez convertir des pages Razor en PDF dans ASP.NET Core à l'aide de la méthode RenderRazorToPdf d'IronPDF. Il suffit d'installer le package IronPdf.Extensions.Razor et d'utiliser le ChromePdfRenderer pour rendre vos fichiers .cshtml directement en documents PDF.

Quels sont les packages NuGet nécessaires à la conversion de Razor en PDF ?

Vous avez besoin de deux paquets NuGet : IronPdf.Extensions.Razor (le paquet d'extension) et IronPdf (le paquet principal). Ces deux packages sont nécessaires pour effectuer le rendu des pages Razor en documents PDF dans les web apps ASP.NET Core.

Puis-je utiliser des données dynamiques dans mes pages Razor lors de la conversion en PDF ?

Oui, IronPDF prend entièrement en charge les données dynamiques dans les Razor Pages. Vous pouvez utiliser le code C#, la liaison de modèle et toutes les fonctionnalités standard de la syntaxe Razor lors de la conversion en PDF, ce qui en fait l'outil idéal pour générer des rapports, des factures et des certificats au contenu dynamique.

Quels types de documents puis-je générer à partir de Razor Pages ?

La conversion Razor vers PDF d'IronPDF est parfaite pour générer divers types de documents, notamment des rapports, des factures, des certificats, des reçus et tout autre document nécessitant une présentation dynamique des données tout en conservant votre style HTML et CSS existant.

Dans quel délai puis-je mettre en œuvre la conversion de Razor en PDF dans mon projet ?

Vous pouvez mettre en œuvre la conversion de Razor en PDF en quelques minutes avec IronPDF. Le flux de travail minimal ne comporte que cinq étapes : l'installation de la bibliothèque, l'ajout d'une classe de modèle, la création d'une page Razor, la modification du fichier .cs pour utiliser la méthode RenderRazorToPdf et l'exécution de votre application.

La conversion conserve-t-elle mon style HTML et CSS ?

Oui, IronPDF préserve votre style HTML et CSS lors de la conversion de Razor Pages en PDF. Cela vous permet de maintenir la cohérence entre vos vues web et vos sorties PDF en utilisant le même style et la même mise en page que vous avez déjà créés.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 17,012,929 | Version : 2025.12 vient de sortir