using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
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, la génération de rapports est une exigence courante dans les applications web. Microsoft fournit des services de rapports rdlc qui peuvent être intégrés dans des applications web à l'aide du contrôle Web Forms Report Viewer. Cependant, le processus peut souvent être complexe et prendre du temps.
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 grande facilité d'utilisation. Dans cet article, nous verrons comment créer un rapport en ASP.NET à l'aide d'IronPDF for .NET.
Comment créer un rapport en ASP.NET
Créer une application Web ASP.NET à l'aide de Visual Studio
Installez IronPDF et IronPDF.Extensions.MVC.Core
Instanciation de l'objet ChromePdfRenderer sender
Appeler la méthode RenderRazorViewToPdf pour convertir la vue en PDF
Ajouter "Content-Disposition" en utilisant Response.Headers.Append
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. Ses riches fonctionnalités et ses API intuitives en font un choix idéal pour les développeurs qui souhaitent générer des rapports dynamiques, des factures, des reçus, etc. directement à partir de leurs applications web. Avec IronPDF, les développeurs peuvent convertir sans effort des vues HTML, CSS et même Razor en documents PDF de haute qualité, ce qui permet une intégration transparente de la fonctionnalité de création de rapports dans leurs projets ASP.NET.
Caractéristiques d'IronPDF
Conversion de HTML en PDF : Convertissez facilement le contenu HTML, y compris les styles CSS, en documents PDF de haute qualité.
Édition PDF : Modifiez des documents PDF existants en ajoutant ou en supprimant du texte, des images et des annotations.
Remplissage de formulaires PDF : Remplir dynamiquement des formulaires PDF avec des données provenant de votre application web.
Génération de codes-barres : Générez des codes-barres et des codes QR dans les documents PDF pour les étiquettes de produits ou le suivi des stocks.
Filigrane : Ajoutez des filigranes aux pages PDF pour protéger les informations sensibles ou les documents de marque.
Cryptage et sécurité : Sécurisez les documents PDF grâce au cryptage, aux mots de passe et aux paramètres d'autorisation.
Conditions préalables
Avant de commencer, assurez-vous que vous disposez des conditions préalables suivantes :
Étapes de la création d'un projet ASP.NET dans Visual Studio
Ouvrez Visual Studio et créez un nouveau projet ASP.NET Core.
Choisissez le modèle de projet souhaité(par exemple, MVC ou Razor Pages).
Configurer les paramètres du projet tels que le nom du projet, l'emplacement et la version du framework.
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 à l'aide du NuGet Package Manager :
Ouvrez le gestionnaire de paquets NuGet pour les solutions en cliquant avec le bouton droit de la souris sur l'explorateur de solutions.
Recherchez "IronPDF" et "IronPDF.Extensions.Mvc.Core".
Installez les deux paquets dans votre solution.
Étapes de la création d'une visionneuse de rapports dans une application Web ASP.NET
Voyons maintenant les étapes de la création d'un rapport PDF à l'aide d'IronPDF for .NET 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 permettant de créer et de télécharger un nouveau rapport au format PDF.
Étape 1 : Définir une classe de modèle
Créez d'abord une classe de modèle(SalesModel.cs) pour représenter les données de vente. Cet exemple de classe SalesModel comprendra des propriétés telles que Date, ProductName, Quantity, UnitPrice et TotalAmount. Cette fonction est utile pour récupérer des informations à partir d'une source de données telle que 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
Étape 2 : Créer une nouvelle vue Web Form
Créez ensuite une vue Razor(Sales.cshtml) pour afficher les données de vente sous forme de tableau et fournir un bouton pour générer le rapport PDF.
Maintenant, ajoutez les ventes comme élément de menu dans le fichier _Layout.cshtml qui se trouve dans le dossier Views->Shared pour créer une vue de l'assistant de rapport :
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales"> Sales</a> </li>
Étape 3 : Enregistrement du service View Render
L'inclusion de l'enregistrement du service de rendu de vue dans le fichier Program.cs est cruciale pour que l'injection de dépendances 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)()
Étape 3 : Mise en œuvre de la classe de contrôleur de l'API Web
Mettre en place un contrôleur(SalesController.cs) avec des actions pour afficher la vue des ventes et générer le rapport PDF. Injecter 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 data in Sales view
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 data in Sales view
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 data in Sales view
Return View(salesData)
End Function
End Class
End Namespace
Dans le code ci-dessus, dans le constructeur, le service IRazorViewRenderer est assigné au champ privé _viewRenderService. En outre, le contrôleur initialise une liste nommée salesData contenant des instances de la classe SalesModel, représentant des informations sur les ventes à des fins de démonstration.
Les ventes() La méthode d'action renvoie une vue nommée "Sales", en passant la liste salesData comme modèle. Cette action est responsable du rendu des données de vente dans la vue associée, ce qui permet aux utilisateurs de visualiser les informations de vente dans un format tabulaire ou dans toute autre disposition souhaitée.
Étape 4 : Générer un rapport PDF
Dans l'action GeneratePdf du contrôleur, utilisez le ChromePdfRenderer d'IronPDF pour effectuer le rendu du fichierVue rasoir vers un PDF Document de rapport. Définir les en-têtes de réponse appropriés et renvoyer le fichier PDF au client.
public FileContentResult GeneratePdf()
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render View to PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
Response.Headers.Append("Content-Disposition", "inline");
// Output PDF document
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
public FileContentResult GeneratePdf()
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render View to PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
Response.Headers.Append("Content-Disposition", "inline");
// Output PDF document
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
Public Function GeneratePdf() As FileContentResult
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
Dim renderer As New ChromePdfRenderer()
' Render View to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData)
Response.Headers.Append("Content-Disposition", "inline")
' Output PDF document
Return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf")
End Function
Comprenons en détail le fonctionnement du code ci-dessus :
License Key Setup:
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Cette ligne définit la clé de licence requise pour IronPDF. Il est essentiel pour utiliser les fonctionnalités d'IronPDF dans l'application.
Renderer Initialization:
ChromePdfRenderer renderer = nouveau ChromePdfRenderer();
Une instance de ChromePdfRenderer est créée. Ce moteur de rendu est responsable de la conversion des vues Razor au format PDF à l'aide du moteur de navigation Chromium.
Rendu de la vue au format PDF:
PdfDocument PDF = renderer.RenderRazorViewToPdf(viewRenderService, "Views/Sales/Sales.cshtml", salesData);
La fonction RenderRazorViewToPdf() La méthode de ChromePdfRenderer est invoquée pour rendre la vue Razor spécifiée(Views/Sales/Sales.cshtml) vers un document PDF. La variable salesData sert de modèle à la vue.
L'en-tête de réponse HTTP Content-Disposition est défini sur "inline ". Cela indique au navigateur d'afficher le contenu du PDF directement pour visualiser les rapports dans la fenêtre ou l'onglet du navigateur lorsqu'il est ouvert.
Le contenu du document PDF est renvoyé sous la forme d'un FileContentResult. Il comprend les données binaires du PDF(pdf.BinaryData)spécifie le type MIME comme "application/pdf ", et propose le nom de fichier "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, ce qui la rend adaptée à l'intégration dans l'application ASP.NET pour améliorer les capacités de création de rapports.
Pour obtenir des informations détaillées sur la manière dont IronPDF facilite le processus de génération de rapports PDF et d'autres tâches liées aux PDF, veuillez consulter la pagedocumentation page.
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 rapidement intégrer IronPDF dans vos projets ASP.NET et générer facilement des rapports PDF dynamiques.
Grâce à son riche ensemble de fonctionnalités 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 de leurs entreprises.
IronPDF offre un service deessai gratuit. Télécharger la bibliothèque à partir deici et l'essayer.
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT Comment créer une application de reporting en C#
SUIVANT > Comment analyser des données à partir de documents PDF
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier