龙空技术网

.net core 使用Rotativa创建PDF文档

宙冰 370

前言:

目前咱们对“net mvc pdf”大体比较关心,小伙伴们都需要学习一些“net mvc pdf”的相关内容。那么小编同时在网上网罗了一些对于“net mvc pdf””的相关文章,希望大家能喜欢,姐妹们快快来学习一下吧!

一、下载Rotaiva

工具 = > NuGet包管理器 = > 管理解决方案的NuGet程序包

在打开的页面中搜索 Rotativa.AspNetCore 如下图:

选中红框的记录,左边会出现你解决方案中的所有项目,选中要添加的项目点击安装,安装完成后项目后面会出现版本号,如下图:

二、配置Rotaiva

在Startup.cs的Rotaiva方法中添加以下内容:

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复制进去,

此两个文件在此网站下载:

如下图:

三、开始建立静态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如下:

标签: #net mvc pdf