Comment convertir une vue en PDF dans ASP.NET Core C#

How to Convert Views to PDFs in ASP.NET MVC

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

Une vue est un composant du framework ASP.NET utilisé pour générer du balisage HTML dans les applications web. Elle fait partie du modèle Modèle-Vue-Contrôleur (MVC), couramment utilisé dans les applications ASP.NET MVC et ASP.NET Core MVC. Les vues sont responsables de la présentation des données à l'utilisateur en rendant dynamiquement le contenu HTML.

ASP.NET Web Application (.NET Framework) MVC est un cadre d'application Web fourni par Microsoft. Il suit un modèle architectural structuré connu sous le nom de Modèle-Vue-Contrôleur (MVC) pour organiser et rationaliser le développement d'applications Web.

  • Modèle : Gère les données, la logique métier et l'intégrité des données.
  • Vue : Présente l'interface utilisateur et affiche les informations.
  • Contrôleur : Gère les entrées utilisateur, traite les demandes et organise les interactions entre le Modèle et la Vue.

IronPDF simplifie le processus de création de fichiers PDF à partir de vues dans un projet ASP.NET MVC. Cela rend la génération de PDF facile et directe dans ASP.NET MVC.

Guide rapide : Convertissez facilement la vue ASP.NET MVC en PDF

Apprenez à convertir rapidement vos vues ASP.NET MVC en documents PDF à l'aide de IronPDF. Avec seulement quelques lignes de code, vous pouvez rendre vos vues CSHTML en PDF de haute qualité, améliorant ainsi la fonctionnalité de votre application. IronPDF simplifie le processus, le rendant accessible aux développeurs de tous niveaux. Commencez par intégrer IronPDF dans vos projets ASP.NET Core pour générer facilement des PDF à partir de vos vues.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    // Install-Package IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext);
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Flux de travail minimal (5 étapes)

  1. Téléchargez la bibliothèque C# pour convertir des vues en PDF dans ASP.NET MVC
  2. Ajoutez une classe modèle pour les données
  3. Créez une action "Personne" dans le contrôleur et utilisez la méthode RenderView
  4. Ajoutez une vue en utilisant le modèle de vue MVC 5
  5. Téléchargez le projet d'exemple pour un démarrage rapide

Package d'extension IronPDF

Le package IronPdf.Extensions.Mvc.Framework est une extension du package principal IronPdf. Les deux packages IronPdf.Extensions.Mvc.Framework et IronPdf sont nécessaires pour rendre les vues en documents PDF dans un ASP.NET MVC.

Install-Package IronPdf.Extensions.Mvc.Framework
class="products-download-section">
data-modal-id="trial-license-after-download">
class="product-image"> Bibliothèque NuGet C# pour PDF
class="product-info">

Installez avec NuGet

class="copy-nuget-row">
Install-Package IronPdf.Extensions.Mvc.Framework
class="copy-button">
class="nuget-link">nuget.org/packages/IronPdf.Extensions.Mvc.Framework/

Rendre les vues en PDFs

Pour convertir des vues en fichiers PDF, vous aurez besoin d'un projet ASP.NET Web Application (.NET Framework) MVC.

Ajouter une classe modèle

  • Accédez au dossier "Models"
  • Créez un nouveau fichier de classe C# nommé "Personne". Cette classe servira de modèle pour représenter des données individuelles. Utilisez l'espace réservé suivant pour vous guider :
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-mvc-framework-model.cs
namespace ViewToPdfMVCSample.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
Namespace ViewToPdfMVCSample.Models
	Public Class Person
		Public Property Id() As Integer
		Public Property Name() As String
		Public Property Title() As String
		Public Property Description() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

Éditer le Contrôleur

Accédez au dossier "Controllers" et ouvrez le fichier "HomeController". Nous allons ajouter l'action "Persons". Veuillez vous référer au code ci-dessous pour obtenir des indications :

Dans le code fourni, la classe ChromePdfRenderer est d'abord créée. Pour utiliser la méthode RenderView, vous devrez lui fournir un HttpContext, spécifier le chemin vers le fichier "Persons.cshtml", et fournir une liste contenant les données nécessaires. When rendering the View, users have the option to utilize RenderingOptions to customize margins, add custom text and HTML headers and footers, and apply page numbers to the resulting PDF document.

Veuillez noterThe PDF document can be downloaded to the machine using the following code: File(pdf.BinaryData, "application/pdf", "viewToPdfMVC.pdf").

using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;

namespace ViewToPdfMVCSample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        // GET: Person
        public ActionResult Persons()
        {
            // Create a list of Person objects
            var 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" }
            };

            if (HttpContext.Request.HttpMethod == "POST")
            {
                // Define the path to the View file
                var viewPath = "~/Views/Home/Persons.cshtml";

                // Instantiate the ChromePdfRenderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();

                // Render the view to a PDF document
                PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

                // Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline");

                // Return the generated PDF file
                return File(pdf.BinaryData, "application/pdf");
            }
            return View(persons);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;

namespace ViewToPdfMVCSample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        // GET: Person
        public ActionResult Persons()
        {
            // Create a list of Person objects
            var 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" }
            };

            if (HttpContext.Request.HttpMethod == "POST")
            {
                // Define the path to the View file
                var viewPath = "~/Views/Home/Persons.cshtml";

                // Instantiate the ChromePdfRenderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();

                // Render the view to a PDF document
                PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

                // Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline");

                // Return the generated PDF file
                return File(pdf.BinaryData, "application/pdf");
            }
            return View(persons);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Web.Mvc
Imports ViewToPdfMVCSample.Models

Namespace ViewToPdfMVCSample.Controllers
	Public Class HomeController
		Inherits Controller

		Public Function Index() As ActionResult
			Return View()
		End Function

		' GET: Person
		Public Function Persons() As ActionResult
			' Create a list of Person objects
'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property:
			Dim persons_Conflict = New List(Of Person) From {
				New Person With {
					.Name = "Alice",
					.Title = "Mrs.",
					.Description = "Software Engineer"
				},
				New Person With {
					.Name = "Bob",
					.Title = "Mr.",
					.Description = "Software Engineer"
				},
				New Person With {
					.Name = "Charlie",
					.Title = "Mr.",
					.Description = "Software Engineer"
				}
			}

			If HttpContext.Request.HttpMethod = "POST" Then
				' Define the path to the View file
				Dim viewPath = "~/Views/Home/Persons.cshtml"

				' Instantiate the ChromePdfRenderer
				Dim renderer As New ChromePdfRenderer()

				' Render the view to a PDF document
				Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons_Conflict)

				' Set headers to view the PDF in-browser
				Response.Headers.Add("Content-Disposition", "inline")

				' Return the generated PDF file
				Return File(pdf.BinaryData, "application/pdf")
			End If
			Return View(persons_Conflict)
		End Function

		Public Function About() As ActionResult
			ViewBag.Message = "Your application description page."
			Return View()
		End Function

		Public Function Contact() As ActionResult
			ViewBag.Message = "Your contact page."
			Return View()
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Une fois que vous obtenez l'objet PdfDocument grâce à la méthode RenderView, vous pouvez y apporter diverses améliorations et ajustements. You can convert the PDF to PDFA or PDFUA formats, sign digital signature to the created PDF, or merge and split PDF documents as required. Moreover, the library enables you to rotate pages, insert annotations or bookmarks, and apply distinct watermarks to your PDF files.

  • Cliquez avec le bouton droit sur l'action Person nouvellement ajoutée et sélectionnez "Ajouter une vue".

Cliquez droit sur l'action Persons

Clique droit sur l'action Persons

  • Choisissez "Vue MVC 5" pour le nouvel élément modèle.

Sélectionnez le modèle

Ajouter vue

Ajouter la vue

  • Naviguez vers le dossier "Views" -> dossier "Home" -> fichier "Persons.cshtml".

Pour ajouter un bouton qui invoque l'action "Persons", utilisez le code ci-dessous :

Ajouter une section à la barre de navigation supérieure

@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
HTML
  • Dans le même dossier "Views", naviguez vers le dossier "Shared" -> _Layout.cshtml.

  • Dans le dossier "Views", accédez au dossier "Shared" -> fichier "_Layout.cshtml". Placez l'élément de navigation "Personne" après "Home".

Assurez-vous que les valeurs pour la méthode ActionLink correspondent exactement à notre nom de fichier, qui dans ce cas est "Persons".

<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
    <div class="container">
        @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
            <ul class="navbar-nav flex-grow-1">
                <li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
            </ul>
        </div>
    </div>
</nav>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
    <div class="container">
        @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
            <ul class="navbar-nav flex-grow-1">
                <li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
            </ul>
        </div>
    </div>
</nav>
HTML

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

Exécuter le projet ASP.NET Core MVC

Exécuter le projet ASP.NET MVC

Sortie PDF

Télécharger le projet ASP.NET 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 que projet ASP.NET Web Application (.NET Framework) MVC.

Téléchargez le projet d'exemple MVC pour la conversion en PDF

Questions Fréquemment Posées

Comment puis-je convertir des vues en PDF dans ASP.NET Core MVC ?

Vous pouvez convertir des vues en PDF dans ASP.NET Core MVC en utilisant la bibliothèque IronPDF. Installez le package IronPdf.Extensions.Mvc.Framework via NuGet et utilisez la classe ChromePdfRenderer pour rendre les vues en documents PDF.

Qu'est-ce qui est nécessaire pour rendre des vues en documents PDF dans ASP.NET MVC ?

Pour rendre des vues en documents PDF dans ASP.NET MVC, vous avez besoin de la bibliothèque IronPDF et de la classe ChromePdfRenderer, qui nécessite un HttpContext, le chemin de la vue et une liste de données pour générer le PDF.

Comment puis-je personnaliser la sortie PDF en utilisant IronPDF dans une application ASP.NET ?

IronPDF permet la personnalisation de la sortie PDF en utilisant RenderingOptions. Vous pouvez ajuster les marges, ajouter des en-têtes et pieds de page personnalisés, et inclure des numéros de page pour adapter le document PDF à vos besoins.

Quelles étapes sont nécessaires pour configurer une classe modèle dans ASP.NET MVC pour la génération de PDF ?

Pour configurer une classe modèle dans ASP.NET MVC, accédez au dossier 'Models', créez un nouveau fichier de classe C# et définissez la classe avec des propriétés qui représentent la structure de données dont vous avez besoin pour la génération de PDF.

Comment intégrer un bouton de génération de PDF dans une vue dans ASP.NET MVC ?

Pour intégrer un bouton de génération de PDF dans une vue dans ASP.NET MVC, vous pouvez ajouter un élément bouton dans le balisage HTML de votre vue et le lier à une action dans votre contrôleur qui utilise IronPDF pour rendre la vue en tant que PDF.

Quel est le processus pour ajouter une vue dans ASP.NET MVC ?

Pour ajouter une vue dans ASP.NET MVC, cliquez avec le bouton droit sur l'action souhaitée dans le contrôleur, sélectionnez 'Ajouter une vue', choisissez 'MVC 5 View' comme élément Scaffolded, et sélectionnez le modèle et la classe de modèle appropriés.

Où puis-je trouver un projet d'exemple pour la conversion de vue en PDF dans ASP.NET MVC ?

Vous pouvez télécharger un projet d'exemple complet MVC pour la conversion PDF depuis le site Web d'IronPDF, qui inclut un fichier zippé à ouvrir dans Visual Studio pour une mise en œuvre pratique.

Comment installer IronPDF pour son utilisation dans un projet ASP.NET MVC ?

Installez IronPDF dans un projet ASP.NET MVC en utilisant le gestionnaire de packages NuGet avec la commande : Install-Package IronPdf.Extensions.Mvc.Framework.

Quelles sont les étapes de dépannage courantes si la génération de PDF échoue dans ASP.NET MVC ?

Si la génération de PDF échoue dans ASP.NET MVC, assurez-vous que le package IronPDF est correctement installé, vérifiez les chemins et le contexte passés à ChromePdfRenderer, et vérifiez que la vue et les données sont correctement rendues.

IronPDF est-il compatible avec .NET 10, et quels avantages apporte la mise à niveau ?

Oui, IronPDF est entièrement compatible avec .NET 10. La mise à niveau apporte des améliorations d'exécution telles que des allocations de mémoire réduites, une meilleure utilisation de la mémoire, des performances améliorées pour le rendu HTML vers PDF et l'accès à de nouvelles fonctionnalités du langage et à des améliorations du framework.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il a une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, documentation et expérience globale.
Prêt à commencer?
Nuget Téléchargements 16,154,058 | Version : 2025.11 vient de sortir