手机版

如何在ASP.NET核心MVC中使用Rotativa创建PDF

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

前言

在本文中,我们将学习如何使用Rotativa。从ASP.NET核心区的视图创建PDF的工具。如果你使用ASP.NET MVC,那么Rot ativa工具已经可用了,我们可以用它来生成pdf。

创建一个MVC项目,不管你是不是核心,你都可以得到这个包。命令如下:

安装包Rotativa#或安装包Rotativa。aspnetcore是由意大利人Giorgio Bozio创建的工具。他需要在ASP.NET MVC中生成pdf,重复的任务是建立一个方法来为业务流程或报表创建PDF文档。我们开始吧。

配置Rotativa。startup.cs类中的AspNetCore设置

我们在Configure方法的startup.cs类中添加此设置,以设置要访问的wkhtmltopdf.exe文件的相对路径。

public void Configure(IApplicationBuilder应用程序,IHostingEnvironment env){ rotateivaconfiguration。设置(env);}我们需要在wwwroot里面添加Rotativa文件夹,然后放这两个exe,我已经放在百度云盘里面了。

然后,我们添加一个演示控制器并定义一个Get方法,定义如下。通过使用ViewAsPdf方法,可以将cshtml以Pdf的形式进行嵌套,从而达到pdf的效果。

公共类demo Controller : Controller {[HttpGet]public IActionResult DemoViewAsPdf(){返回新视图aspdf(' DemoViewAsPdf ');}}现在,我们需要通过控制器创建一个视图,然后在视图中定义以下内容:

@ { view data[' Title ']=' DemoViewAsPdf ';} html head meta charset=' utf-8 ' title demo/title/head body PhelLo AspnetCore!/p/body/html现在,让我们将页面重置为

http://localhost :55999/Demo/DemoViewAsPdf

边缘

除了普通的显示pdf,我们还可以进行下载、打印等操作。当然,如果宽度和高度不满意,可以设置视图。有一个配置视图的类。它的定义如下,有四个配置值。

公共类边距{ [OptionFlag('-B')]公共int?底部;[OptionFlag('-L')] public int?向左;[OptionFlag('-R')] public int?右;[OptionFlag('-T')] public int?顶;public Margins();公共边距(顶部整数,右侧整数,底部整数,左侧整数);公共重写字符串ToString();}直接在控制器中新建它,然后直接返回它,类似于上面,现在可以在html中给p标签添加一些内容,然后看效果。

[HttpGet]public IActionResult DemoViewAsPdf(){返回新视图aspdf(' demopagemarginsdf '){页面边距={左=20,底=20,右=20,顶=20 },};}就这样,我们又开始了,可以看到已经有了一个外距离!

横向和纵向

它还为我们提供了水平或垂直pdf效果,定义如下:

[HttpGet]public IActionResult demoview aspdf(字符串方向){ if(方向=='纵向'){ var demoview人像=new view aspdf(' demoview aspdf '){ FileName=' invoice . pdf ',PageOrientation=Rotativa。AspNetCore.Options.Orientation .人像,};返回demoview人像;} else { var demoview landscape=new view aspdf(' demoview aspdf '){ FileName=' invoice . pdf ',PageOrientation=Rotativa。AspNetCore . options . orientation . landscape,};返回demoViewLandscape}}通过http///localhost :60042/demo/demo orientiondf?方位=纵向或其他路线进入,可以通过对比以下来看效果。

设置PDF大小

基本上都是A4,枚举中有很多值。自己看吧~

[HttpGet]public IActionResult DemoViewAspdf(字符串方向){返回新视图Aspdf(' DemoPageSizePdF '){ PageSize=Rotativa。AspNetCore . options . size . a4 };}小案例

创建一个模型,这是一个非常简单的模型,定义如下:

公共类客户{ public int CustomerID { get设置;}公共字符串名称{获取设置;}公共字符串地址{ get设置;}公共字符串国家{ get设置;}公共字符串城市{ get设置;}公共字符串Phoneno { get设置;} }在控制器中新的几个对象,然后返回pdf。

[httpgetpublic]IActionResult DemoViewAsPdf(){列表客户列表=新列表客户(){新客户{ CustomerID=1,地址='泰姬陵土地结束于1 ',城市='孟买',国家='印度',名称='赛',电话号码=' 90000000000 ' },新客户{ CustomerID=2,地址='泰姬陵土地结束2 ',城市='孟买',国家='印度',名称='Ram ',电话号码=' 9000000000000 ' },新客户新客户{ CustomerID=4,地址='泰姬陵土地结束4 ',城市='孟买',国家='印度',姓名='Saineshwar ',电话号码='9000000000'},新客户{ CustomerID=5,地址='泰姬陵土地结束5 ',城市='孟买',国家='印度',姓名='帆布包',电话号码=' 900000000 ' };返回新视图(DemoModelPDF,customerList);}在视图中,我们只是迭代集合,渲染页面。

@model ListMvcHtmlToPdf .模型。客户@{布局=空;}!DOCTYPE html html lang=' en ' head title bootstrap示例/title meta charset=' utf-8 ' meta name=' viewport ' content=' width=device-width,initial-scale=1 '/head dy div class=' container ' H2客户/H2 p客户详细信息/p表class=' table-bounded ' tr thCustomerID/th thName/th thad服饰/th国家/th thCity/th电话号码/th/tr/tr/t body @ foreach(Model中的定义变量项目){ td@item.CustomerID/tdtd@item.Name/tdtd@item.Address/td国家/TD td@item.City/td td@item.Phoneno/td/tr }/t正文/表格/div/正文/html总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

版权声明:如何在ASP.NET核心MVC中使用Rotativa创建PDF是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。