Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment créer un rapport dans ASP .NET

Les rapports sont essentiels pour présenter les données dans un format structuré et visuellement attrayant. Qu'il s'agisse de données de vente, d'analyses ou de résumés financiers, générer des rapports est une exigence courante dans les applications web. Microsoft fournit des services de rapport RDLC, pouvant être intégrés dans des applications web en utilisant le contrôle Web Forms Report Viewer. Cependant, le processus peut souvent être complexe et chronophage.

C'est là qu'intervient IronPDF. IronPDF est une bibliothèque polyvalente qui simplifie la génération de rapports PDF dans ASP.NET et d'autres frameworks web, offrant des fonctionnalités puissantes et une facilité d'utilisation. Dans cet article, nous allons explorer comment créer un rapport dans ASP.NET en utilisant IronPDF.

Comment créer un rapport dans ASP.NET

  1. Créer une application Web ASP.NET en utilisant Visual Studio
  2. Installer IronPDF et IronPDF.Extensions.MVC.Core
  3. Instancier l'objet ChromePdfRenderer expéditeur
  4. Appeler la méthode RenderRazorViewToPdf pour convertir la vue en PDF
  5. Ajouter "Content-Disposition" en utilisant Response.Headers.Append
  6. Créer un rapport en utilisant la méthode File avec PDF.BinaryData

Introduction à IronPDF

IronPDF est une bibliothèque polyvalente qui simplifie la génération de documents PDF dans ASP.NET et d'autres frameworks web. Son ensemble de fonctionnalités riche et ses APIs intuitives en font un choix idéal pour les développeurs souhaitant générer des rapports dynamiques, des factures, des reçus, et plus directement depuis leurs applications web. Avec IronPDF, les développeurs peuvent convertir sans effort des HTML, CSS et même des vues Razor en documents PDF de haute qualité, permettant une intégration fluide des fonctionnalités de rapport dans leurs projets ASP.NET.

Caractéristiques de IronPDF

  • Conversion HTML en PDF : Convertissez facilement du contenu HTML, y compris les styles CSS, en documents PDF de haute qualité.
  • Édition PDF : Modifiez les documents PDF existants en ajoutant ou en supprimant du texte, des images et des annotations.
  • Remplissage de formulaires PDF : Remplissez dynamiquement des formulaires PDF avec des données depuis votre application web.
  • Génération de code-barres : Générez des codes-barres et QR codes dans les documents PDF pour les étiquettes de produits ou le suivi des stocks.
  • Mise en filigrane : Ajoutez des filigranes aux pages PDF pour protéger les informations sensibles ou marquer les documents.
  • Chiffrement et sécurité : Sécurisez les documents PDF avec le chiffrement, les mots de passe et les paramètres d'autorisation.

Prérequis

Avant de commencer, assurez-vous d'avoir les prérequis suivants :

  • Connaissances de base en développement ASP.NET.
  • Visual Studio est installé sur votre machine.
  • IronPDF et IronPDF.Extensions.Mvc.Core

Étapes pour créer un projet ASP.NET dans Visual Studio

  1. Ouvrez Visual Studio et créez un nouveau projet ASP.NET Core.
  2. Choisissez le modèle de projet souhaité (par exemple, MVC ou Razor Pages).

Comment créer un rapport dans ASP .NET : Figure 1

  1. Configurez les paramètres du projet tels que le nom du projet, l'emplacement, et la version du framework.

Comment créer un rapport dans ASP .NET : Figure 2

  1. Cliquez sur "Créer" pour générer la structure du projet.

Installation d'IronPDF et d'IronPDF.Extensions.Mvc.Core

Ensuite, installons IronPDF et son package d'extension MVC en utilisant le gestionnaire de packages NuGet :

  1. Ouvrez le gestionnaire de packages NuGet pour les solutions en faisant un clic droit sur l'Explorateur de solutions.
  2. Recherchez "IronPDF" et "IronPDF.Extensions.Mvc.Core".

Comment créer un rapport dans ASP .NET : Figure 3

  1. Installez les deux packages dans votre solution.

Étapes pour créer un visualiseur de rapport dans une application Web ASP.NET

Maintenant, plongeons dans les étapes pour créer un rapport PDF à l'aide d'IronPDF dans notre projet ASP.NET. Avant de convertir une vue en rapport, nous avons besoin d'un Modèle, d'une Vue et d'un Contrôleur pour créer une source de données pour créer et télécharger un nouveau rapport en format PDF.

Étape 1 : Définir une classe Modèle

Tout d'abord, créez une classe modèle (SalesModel.cs) pour représenter les données de vente. Cette classe exemple SalesModel inclura des propriétés telles que Date, ProductName, Quantity, UnitPrice, et TotalAmount. Cela est utile lors de la récupération d'informations à partir d'une source de données comme Microsoft SQL Server ou MySQL Server.

namespace ReportGenerator.Models
{
    public class SalesModel
    {
        public DateTime Date { get; set; }
        public string ProductName { get; set; }
        public int Quantity { get; set; }
        public decimal UnitPrice { get; set; }
        public decimal TotalAmount => Quantity * UnitPrice;
    }
}
namespace ReportGenerator.Models
{
    public class SalesModel
    {
        public DateTime Date { get; set; }
        public string ProductName { get; set; }
        public int Quantity { get; set; }
        public decimal UnitPrice { get; set; }
        public decimal TotalAmount => Quantity * UnitPrice;
    }
}
Namespace ReportGenerator.Models
	Public Class SalesModel
		Public Property [Date]() As DateTime
		Public Property ProductName() As String
		Public Property Quantity() As Integer
		Public Property UnitPrice() As Decimal
		Public ReadOnly Property TotalAmount() As Decimal
			Get
				Return Quantity * UnitPrice
			End Get
		End Property
	End Class
End Namespace
$vbLabelText   $csharpLabel

Étape 2 : Créer une nouvelle vue Web Form

Ensuite, créez une vue Razor (Sales.cshtml) pour afficher les données de vente dans un format tabulaire et fournir un bouton pour générer le rapport PDF.

<!-- Sales.cshtml -->
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
    <title>Sales Report</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;
        }
        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
    <h2>Sales Report</h2>
    <table>
        <tr>
            <th>Date</th>
            <th>Product Name</th>
            <th>Quantity</th>
            <th>Unit Price</th>
            <th>Total Amount</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Date.ToShortDateString()</td>
                <td>@item.ProductName</td>
                <td>@item.Quantity</td>
                <td>@item.UnitPrice.ToString("C")</td>
                <td>@item.TotalAmount.ToString("C")</td>
            </tr>
        }
    </table>
    <br />
    @using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
    {
        <button type="submit">Generate PDF Report</button>
    }
</body>
</html>
<!-- Sales.cshtml -->
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
    <title>Sales Report</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;
        }
        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
    <h2>Sales Report</h2>
    <table>
        <tr>
            <th>Date</th>
            <th>Product Name</th>
            <th>Quantity</th>
            <th>Unit Price</th>
            <th>Total Amount</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Date.ToShortDateString()</td>
                <td>@item.ProductName</td>
                <td>@item.Quantity</td>
                <td>@item.UnitPrice.ToString("C")</td>
                <td>@item.TotalAmount.ToString("C")</td>
            </tr>
        }
    </table>
    <br />
    @using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
    {
        <button type="submit">Generate PDF Report</button>
    }
</body>
</html>
HTML

Ajoutez maintenant Sales comme élément de menu dans le fichier _Layout.cshtml trouvé dans le dossier Views->Shared pour créer une vue de l'assistant de rapport :

<!— Layout.cshtml —>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
<!— Layout.cshtml —>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
HTML

Comment créer un rapport dans ASP .NET : Figure 4

Étape 3 : Enregistrer le Service de Rendu de Vue

L'inclusion de l'enregistrement du service de rendu de vue dans le fichier Program.cs est cruciale pour que l'injection de dépendance fonctionne correctement. Ajoutez le code suivant au fichier Program.cs pour enregistrer le service IRazorViewRenderer :

// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
' Register the IRazorViewRenderer service
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
$vbLabelText   $csharpLabel

Étape 4 : Implémenter la classe du Contrôleur Web API

Implémentez un contrôleur (SalesController.cs) avec des actions pour rendre la vue des ventes et générer le rapport PDF. Injectez le service IRazorViewRenderer fourni par IronPDF dans le constructeur du contrôleur.

using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
    public class SalesController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        private readonly List<SalesModel> salesData;

        public SalesController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
            // Example data with sales information
            salesData = new List<SalesModel>
            {
                new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
                // Add more data as needed
            };
        }

        public IActionResult Sales()
        {
            // Renders the sales view with the sales data
            return View(salesData);
        }
    }
}
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
    public class SalesController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        private readonly List<SalesModel> salesData;

        public SalesController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
            // Example data with sales information
            salesData = new List<SalesModel>
            {
                new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
                // Add more data as needed
            };
        }

        public IActionResult Sales()
        {
            // Renders the sales view with the sales data
            return View(salesData);
        }
    }
}
Imports ReportGenerator.Models
Namespace ReportGenerator.Controllers
	Public Class SalesController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Private ReadOnly salesData As List(Of SalesModel)

		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
			' Example data with sales information
			salesData = New List(Of SalesModel) From {
				New SalesModel With {
					.Date = DateTime.Parse("2024-03-01"),
					.ProductName = "Product A",
					.Quantity = 10,
					.UnitPrice = 50.00D
				},
				New SalesModel With {
					.Date = DateTime.Parse("2024-03-02"),
					.ProductName = "Product B",
					.Quantity = 15,
					.UnitPrice = 40.00D
				},
				New SalesModel With {
					.Date = DateTime.Parse("2024-03-03"),
					.ProductName = "Product C",
					.Quantity = 20,
					.UnitPrice = 30.00D
				}
			}
		End Sub

		Public Function Sales() As IActionResult
			' Renders the sales view with the sales data
			Return View(salesData)
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Dans le code ci-dessus, à l'intérieur du constructeur, le service IRazorViewRenderer est assigné au champ privé _viewRenderService. De plus, le contrôleur initialise une liste nommée salesData contenant des instances de la classe SalesModel, représentant des informations de vente à des fins de démonstration.

La méthode d'action Sales() renvoie une vue nommée "Sales", passant la liste salesData comme modèle. Cette action est responsable du rendu des données de vente dans la vue associée, permettant aux utilisateurs de visualiser les informations de vente dans un format tabulaire ou une autre mise en page souhaitée.

Comment créer un rapport dans ASP .NET : Figure 5

Étape 5 : Générer le rapport PDF

Dans l'action GeneratePdf du contrôleur, utilisez le ChromePdfRenderer d'IronPDF pour rendre le vue Razor en document PDF. Définissez les en-têtes de réponse appropriés et retournez le fichier PDF au client.

public FileContentResult GeneratePdf()
{
    // Set license key for IronPDF
    License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

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

    // Render the Sales Razor view to a PDF document
    PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);

    // Set HTTP response header to display the PDF inline
    Response.Headers.Append("Content-Disposition", "inline");

    // Return the PDF document as a FileContentResult
    return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
public FileContentResult GeneratePdf()
{
    // Set license key for IronPDF
    License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

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

    // Render the Sales Razor view to a PDF document
    PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);

    // Set HTTP response header to display the PDF inline
    Response.Headers.Append("Content-Disposition", "inline");

    // Return the PDF document as a FileContentResult
    return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
Public Function GeneratePdf() As FileContentResult
	' Set license key for IronPDF
	License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

	' Initialize the ChromePdfRenderer
	Dim renderer As New ChromePdfRenderer()

	' Render the Sales Razor view to a PDF document
	Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData)

	' Set HTTP response header to display the PDF inline
	Response.Headers.Append("Content-Disposition", "inline")

	' Return the PDF document as a FileContentResult
	Return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf")
End Function
$vbLabelText   $csharpLabel

Comprenons les rouages du code ci-dessus en détail :

  1. Configuration de la clé de licence :
    • License.LicenseKey = "VOTRE-CLÉ-DE-LICENCE-ICI";
    • Cette ligne configure la clé de licence requise pour IronPDF. Il est essentiel pour utiliser les fonctionnalités d'IronPDF dans l'application.
  2. Initialisation du Renderer :
    • ChromePdfRenderer renderer = new ChromePdfRenderer();
    • Une instance de ChromePdfRenderer est créée. Ce renderer est responsable de la conversion des vues Razor au format PDF en utilisant le moteur de navigateur Chromium.
  3. Rendu de la vue en PDF :
    • PdfDocument PDF = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
    • La méthode RenderRazorViewToPdf() de ChromePdfRenderer est invoquée pour rendre la vue Razor spécifiée (Views/Sales/Sales.cshtml) en document PDF. La variable salesData sert de modèle pour la vue.
  4. En-tête Content-Disposition :
    • Response.Headers.Append("Content-Disposition", "inline");
    • L'en-tête de réponse HTTP Content-Disposition est défini sur "inline". Cela instruit le navigateur à afficher directement le contenu PDF pour visualiser les rapports dans la fenêtre ou l'onglet du navigateur lors de l'ouverture.
  5. Retour du fichier PDF :
    • return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
    • Le contenu du document PDF est retourné en tant que FileContentResult. Il inclut les données binaires du PDF (pdf.BinaryData), spécifie le type MIME comme "application/pdf", et suggère le nom de fichier comme "SalesReport.pdf".

Dans l'ensemble, cette méthode orchestre efficacement le processus de génération d'un rapport PDF à partir d'une vue Razor, faisant d'elle une solution adéquate pour l'intégration dans l'application ASP.NET afin d'améliorer les capacités de rapport.

Comment créer un rapport dans ASP .NET : Figure 6

Pour des informations détaillées sur comment IronPDF facilite le processus de génération de rapport PDF et d'autres tâches liées au PDF, veuillez visiter la page de documentation.

Conclusion

Dans cet article, nous avons exploré comment IronPDF simplifie le processus de génération de rapports PDF dans les applications ASP.NET. En suivant le guide étape par étape fourni ci-dessus, vous pouvez intégrer rapidement IronPDF dans vos projets ASP.NET et générer des rapports PDF dynamiques avec facilité.

Avec son ensemble de fonctionnalités riches et son intégration transparente, IronPDF permet aux développeurs de créer des rapports de qualité professionnelle qui répondent aux besoins de leurs utilisateurs et entreprises.

IronPDF propose un essai gratuit. Téléchargez la bibliothèque depuis ici et essayez-la.

Questions Fréquemment Posées

Comment puis-je générer un rapport PDF en ASP.NET ?

Vous pouvez générer un rapport PDF en ASP.NET en utilisant IronPDF. Commencez par configurer une application web ASP.NET dans Visual Studio, puis installez IronPDF et son extension MVC. Utilisez la classe ChromePdfRenderer pour convertir les vues Razor en PDFs et utilisez la méthode File pour créer le rapport.

Quels sont les avantages d'utiliser une bibliothèque PDF pour ASP.NET ?

L'utilisation d'une bibliothèque PDF comme IronPDF pour ASP.NET simplifie le processus de génération et de gestion de rapports PDF. Elle prend en charge la conversion HTML en PDF, l'édition de PDF, le remplissage de formulaires, la génération de codes-barres et la sécurité des documents, ce qui la rend polyvalente pour divers besoins d'application web.

Comment convertir les vues Razor en PDF dans ASP.NET ?

Pour convertir les vues Razor en PDF dans ASP.NET, vous pouvez utiliser la méthode ChromePdfRenderer.RenderRazorViewToPdf d'IronPDF. Cela vous permet d'intégrer de manière transparente la génération de PDF dans vos applications ASP.NET.

Quelles fonctionnalités IronPDF offre-t-il pour la génération de rapports PDF ?

IronPDF offre des fonctionnalités telles que la conversion HTML en PDF, l'édition de PDF, le remplissage de formulaires, la génération de codes-barres, le filigrane et le chiffrement et la sécurité des documents. Ces fonctionnalités facilitent la création de rapports PDF dynamiques et sécurisés.

Comment puis-je sécuriser des documents PDF dans ASP.NET ?

IronPDF fournit des fonctionnalités de chiffrement et de sécurité qui permettent aux développeurs de sécuriser les documents PDF avec un chiffrement, des mots de passe et des paramètres d'autorisation. Cela garantit que les informations sensibles restent protégées dans vos applications ASP.NET.

Existe-t-il un essai gratuit pour IronPDF ?

Oui, IronPDF propose un essai gratuit. Vous pouvez télécharger la bibliothèque depuis le site web d'IronPDF et explorer ses fonctionnalités pour générer des rapports PDF de qualité professionnelle dans vos applications.

Comment ajouter un filigrane à un PDF dans une application ASP.NET ?

Vous pouvez ajouter un filigrane à un PDF dans une application ASP.NET en utilisant IronPDF. La bibliothèque fournit des API pour superposer des filigranes sur les documents PDF, vous permettant de protéger des informations sensibles ou de marquer efficacement vos documents.

Quelles sont les conditions préalables pour utiliser IronPDF dans mon projet ASP.NET ?

Avant d'utiliser IronPDF, assurez-vous d'avoir une compréhension de base du développement ASP.NET et que Visual Studio soit installé. De plus, vous devez installer IronPDF et son extension MVC dans votre projet pour utiliser ses fonctionnalités.

Où puis-je trouver plus d'informations sur IronPDF ?

Pour des informations plus détaillées sur IronPDF et ses capacités, vous pouvez visiter la page de documentation sur le site web d'IronPDF. La documentation offre des informations sur la configuration, les fonctionnalités et des exemples de code.

IronPDF est-il compatible avec .NET 10, et quels avantages cela apporte-t-il ?

Oui, IronPDF est entièrement compatible avec .NET 10 pour les projets Web, Desktop et Console. Il tire parti des améliorations de performances du runtime .NET 10 (comme la réduction de l'allocation de mémoire et l'accélération de la compilation JIT), des améliorations du langage C# et des API modernes. Les développeurs peuvent utiliser des méthodes comme RenderHtmlAsPdf et RenderHtmlAsPdfAsync en toute transparence dans les applications .NET 10, bénéficiant ainsi d'une vitesse de rendu accrue, d'un déploiement multiplateforme et d'un code plus propre.

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