如何用.NET Core结合Rotativa生成PDF文档?
- 内容介绍
- 文章标签
- 相关推荐
本文共计529个文字,预计阅读时间需要3分钟。
一、下载Rotaiva+工具=NuGet包管理器=管理解决方案的NuGet程序包=在打开的页面中搜索Rotativa.AspNetCore如下所示:选择红色框的记录,左侧会出现你解决方案中所有项目,选择要添加的项目即可。
一、下载Rotaiva
工具 = > NuGet包管理器 = > 管理解决方案的NuGet程序包
在打开的页面中搜索 Rotativa.AspNetCore 如下图:
选中红框的记录,左边会出现你解决方案中的所有项目,选中要添加的项目点击安装,安装完成后项目后面会出现版本号,如下图:
二、配置Rotaiva
在Startup.cs的Rotaiva方法中添加以下内容:
RotativaConfiguration.Setup(env);
完整代码如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } RotativaConfiguration.Setup(env);//RotativaConfiguration 转PDF 功能 app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } }
添加PDF转换工具
在wwwroot目录下添加Rotativa目录 ,再把wkhtmltoimage.exe和wkhtmltopdf.exe复制进去,
此两个文件在此网站下载:github.com/webgio/Rotativa.AspNetCore
如下图:
三、开始建立静态PDF档
在HomeController 下建立一个Action,如下图:
[HttpGet] public IActionResult Pdf() { return new ViewAsPdf("Pdf"); }
然后建立cshtml
@{ ViewData["Title"] = "Pdf"; } <h2>Pdf</h2>
启动项目,打印页面,可以看到下载pdf页面,最终PDF如下:
四、建立动态PDF档
建立Controller
[HttpGet]
public IActionResult PdfDemo()
{
List<tbl_page> pageList = new List<tbl_page>();
pageList.Add(new tbl_page()
{
page_name="1",
page_no="1"
});
pageList.Add(new tbl_page()
{
page_name = "2",
page_no = "2"
});
pageList.Add(new tbl_page()
{
page_name = "3",
page_no = "3"
});
return new ViewAsPdf(pageList);
}
生成cshtml
@model IEnumerable<NetCoreApiDemo.Model.tbl_page> @{ ViewData["Title"] = "PdfDemo"; } <h2>PdfDemo</h2> <table class="table table-bordered"> <thead> <tr> <th>page_no</th> <th>page_name</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@item.page_no</td> <td>@item.page_name</td> </tr> } </tbody> </table>
最终生成PDF如下:
本文共计529个文字,预计阅读时间需要3分钟。
一、下载Rotaiva+工具=NuGet包管理器=管理解决方案的NuGet程序包=在打开的页面中搜索Rotativa.AspNetCore如下所示:选择红色框的记录,左侧会出现你解决方案中所有项目,选择要添加的项目即可。
一、下载Rotaiva
工具 = > NuGet包管理器 = > 管理解决方案的NuGet程序包
在打开的页面中搜索 Rotativa.AspNetCore 如下图:
选中红框的记录,左边会出现你解决方案中的所有项目,选中要添加的项目点击安装,安装完成后项目后面会出现版本号,如下图:
二、配置Rotaiva
在Startup.cs的Rotaiva方法中添加以下内容:
RotativaConfiguration.Setup(env);
完整代码如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } RotativaConfiguration.Setup(env);//RotativaConfiguration 转PDF 功能 app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } }
添加PDF转换工具
在wwwroot目录下添加Rotativa目录 ,再把wkhtmltoimage.exe和wkhtmltopdf.exe复制进去,
此两个文件在此网站下载:github.com/webgio/Rotativa.AspNetCore
如下图:
三、开始建立静态PDF档
在HomeController 下建立一个Action,如下图:
[HttpGet] public IActionResult Pdf() { return new ViewAsPdf("Pdf"); }
然后建立cshtml
@{ ViewData["Title"] = "Pdf"; } <h2>Pdf</h2>
启动项目,打印页面,可以看到下载pdf页面,最终PDF如下:
四、建立动态PDF档
建立Controller
[HttpGet]
public IActionResult PdfDemo()
{
List<tbl_page> pageList = new List<tbl_page>();
pageList.Add(new tbl_page()
{
page_name="1",
page_no="1"
});
pageList.Add(new tbl_page()
{
page_name = "2",
page_no = "2"
});
pageList.Add(new tbl_page()
{
page_name = "3",
page_no = "3"
});
return new ViewAsPdf(pageList);
}
生成cshtml
@model IEnumerable<NetCoreApiDemo.Model.tbl_page> @{ ViewData["Title"] = "PdfDemo"; } <h2>PdfDemo</h2> <table class="table table-bordered"> <thead> <tr> <th>page_no</th> <th>page_name</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@item.page_no</td> <td>@item.page_name</td> </tr> } </tbody> </table>
最终生成PDF如下:

