Des outils tels que Crystal Reports peuvent être utilisés pour imprimer des vues affichant des rapports. Ils peuvent même créer et imprimer ces rapports dans un document facile à imprimer. Pour ce faire, le rapport doit être converti au format PDF en l'exportant au format courant puis convertir ce flux en PDF.
Les développeurs utilisant ASP.NET MVC 5 et travaillant sur des applications métier ont souvent l'obligation de créer des documents PDF dans ASP.NET MVC. PDF peut être généré directement en utilisant Rotativa paquet et envoyé pour impression.
Sommaire
Impression d'un fichier PDF dans ASP.NET MVC à l'aide de Rotativa
Rotativa est un framework qui fournit des API gratuites offrant un moyen extrêmement simple d'imprimer des documents PDF dans des applications ASP.NET MVC. Rotativa est basé sur le wkhtmltopdf outil pour créer un document PDF à partir de HTML qui s'affiche dans le navigateur.
Le cadre Rotativa a été créé par Giorgio Bozio et peut être téléchargé à partir de ce lien http://nuget.org/packages/Rotativa ou à partir de Github à l'adresse https://github.com/webgio/Rotativa.
Rotativa utilise le moteur de kit Web utilisé par le navigateur Chrome pour le rendu HTML. La plupart des balises et des styles HTML sont pris en charge par ce cadre.
Le cadre Rotativa fournit Rotativa espace de noms. Cet espace de noms contient les classes suivantes:
1. ActionAsPdf – accepte un nom de vue en tant que paramètre de chaîne afin qu'il puisse être converti en PDF.
2. PartialViewAsPdf – renvoie une vue partielle au format PDF.
3. UrlAsPdf – permet de renvoyer n'importe quelle URL au format PDF.
4. ViewAsPdf – renvoie le résultat sous forme de PDF au lieu de réponse HTML.
Démo d'impression PDF
Cette application est développée à l'aide de ASP.NET MVC 5 avec Visual Studio 2015 ou de Community Edition.
Les étapes suivantes fournissent des informations supplémentaires sur la mise en œuvre de la démonstration.
Étape 1: Ouvrez Visual Studio 2015, créez une nouvelle application Web ASP.NET et nommez-la MVC_Print_PDF. Sélectionnez Modèle d'application MVC vide pour créer une application vide.
Étape 2: Comme cette application utilise EntityFramework, dans le dossier App_Data du projet, ajoutez une nouvelle base de données Sql Server de nom. ApplicationDB.mdf. Dans cette base de données, ajoutez une nouvelle table du nom EmployeeInfo à l'aide du script suivant.
CREER LA TABLE [dbo].[EmployeeInfo] ( [EmpNo] ID IDENTITÉ (1, 1) NON NUL, [EmpName] VARCHAR (50) PAS NULL, [Salary] INT NON NULL, [DeptName] VARCHAR (50) PAS NULL, [Designation] VARCHAR (50) PAS NULL, [HRA] AS ([Salary]* (0,2)), [TA] AS ([Salary]* (0,15)), [DA] AS ([Salary]* (0,18)), [GrossSalary] AS ((([Salary]+[Salary]* (0.2)) +[Salary]* (0.15)) +[Salary]* (0,18)), [TDS] AS (((([Salary]+[Salary]* (0.2)) +[Salary]* (0.15)) +[Salary]* (0,18)) * (0,25)), [NetSalary] AS (((([Salary]+[Salary]* (0.2)) +[Salary]* (0.15)) +[Salary]* (0.18)) - ((([Salary]+[Salary]* (0.2)) +[Salary]* (0.15)) +[Salary]* (0,18)) * (0,25)), CLÉ PRIMAIRE CLUSTERÉE ([EmpNo] ASC) )
Dans le tableau ci-dessus, les colonnes HRA, TA, DA, GrossSalary, TDS et NetSalary sont générées en fonction de la formule utilisant la colonne Salaire. Dans ce tableau, ajoutez les données de test.
Étape 3: Cliquez avec le bouton droit sur le dossier Modèles et ajoutez un nouveau modèle de données ADO.Net Entity nommé. AppEntities. Dans l'assistant de modèle d'entité, sélectionnez Code First de la base de données comme indiqué dans l'image suivante.
using System.Linq; using System.Web.Mvc; using MVC_Print_PDF.Models; en utilisant Rotativa; espace de noms MVC_Print_PDF.Controllers Classe publique EmployeeInfoController: Controller AppEntities ctx; public EmployeeInfoController () ctx = new Models.AppEntities (); public ActionResult Index () var emps = ctx.EmployeeInfoes.ToList (); retournez la vue (emps); public ActionResult PrintAllReport () var report = new ActionAsPdf ("Index"); rapport de retour; public ActionResult IndexById (int id) var emp = ctx.EmployeeInfoes.Where (e => e.EmpNo == id) .First (); retourner Voir (emp); public ActionResult PrintSalarySlip (int id) var report = new ActionAsPdf ("IndexById", new id = id); rapport de retour;
La classe de contrôleur ci-dessus effectue les opérations suivantes:
1. La méthode d'action Indice() renvoie l'objet View montrant tous les employés.
2. La méthode d'action PrintAllReports () crée une instance de ActionAdPdf () classe. Le constructeur de cette classe accepte un paramètre View Name en tant que chaîne. Dans ce cas, le Indice la vue est passée à elle. Cette classe imprime la sortie rendue HTML de la vue Index en tant que document PDF.
3. La méthode d'action IndexById () accepte un identifiant paramètre. Cette méthode recherche un employé sur la base de son identifiant et retourne un objet de vue contenant une information sur l'employé.
4. La méthode d'action PrintSalarySlip () accepte un identifiant paramètre. Comme le PrintAllreport () méthode d’action, cette méthode crée également une instance de la classe ActionAsPdf. Le constructeur de cette classe accepte IndexById vue. Cette méthode renvoie la vue IndexById rendue HTML sous forme de document PDF.
@ Html.ActionLink ("Print", "PrintAllReport")
Cela fera une demande à la PrintAllReport méthode d'action.
Supprimez le lien d'action Modifier, Détails et Supprimer situé au bas du fichier Index.cshtml et ajoutez le lien d'action suivant:
@ Html.ActionLink ("Imprimer le bulletin de salaire", "PrintSalarySlip", nouveau id = item.EmpNo)
..éxécuter PrintSalarySlip méthode d'action.
Étape 7: Cliquez avec le bouton droit de la souris dans la méthode d'action IndexById et ajoutez une vue vide avec le modèle EmployeeInfo.
Cela ajoutera IndexById.cshtml dans le sous-dossier EmployeeInfo du dossier Views. Cette vue sera utilisée pour afficher le bulletin de salaire. La vue aura le code suivant:
@model MVC_Print_PDF.Models.EmployeeInfo @ ViewBag.Title = "IndexById";Détail du salaire de: @ Model.EmpName
Nom du département : @ Model.DeptName La désignation : @ Model.Designation
Détails du revenu Un salaire @ Model.Salary HRA @ Model.HRA TA @ Model.TA DA @ Model.DA Gorss Salaire @ Model.GrossSalary
Déductions TDS @ Model.TDS Salaire net @ Model.NetSalary @ Html.ActionLink ("Retour à la liste", "Index")
Étape 8: Dans le fichier RouteConfig.cs du dossier App_Start, mettez à jour la valeur par défaut de Route, comme indiqué dans le code suivant:
routes.MapRoute ( nom: "Défaut", url: "controller / action / id", valeurs par défaut: new controller = "EmployeeInfo", action = "Index", id = UrlParameter.Optional )
Ce code exécutera EmployeeInfoController lors de l'exécution de l'application.
Exécutez l'application pour afficher la vue Index:
<! –->
C # et .NET existent depuis très longtemps, mais leur croissance constante signifie qu’il ya toujours plus à apprendre.
À DotNetCurry, nous sommes très heureux d’annoncer la Le livre absolument génial sur C # et .NET. Il s'agit d'un eBook technique concis de 500 pages disponible en PDF, ePub (iPad) et Mobi (Kindle).
Organisé autour de concepts, cet eBook vise à fournir une base concise, mais solide, en C # et .NET, couvrant C # 6.0, C # 7.0 et .NET Core, avec des chapitres sur .NET Standard et la prochaine version de C # 8.0. Utilisez ces concepts pour approfondir vos connaissances actuelles en C # et .NET, pour bien vous familiariser avec les dernières nouveautés en C # et .NET OR afin de percer votre prochaine interview .NET.
Cliquez ici pour explorer la table des matières ou télécharger des exemples de chapitres!
Commentaires
Laisser un commentaire