.net core 使用Rotativa创建PDF文档

一、下载Rotaiva

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

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

    .net core 使用Rotativa创建PDF文档_第1张图片

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

    .net core 使用Rotativa创建PDF文档_第2张图片

二、配置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复制进去,

    此两个文件在此网站下载:https://github.com/webgio/Rotativa.AspNetCore

    如下图:

    .net core 使用Rotativa创建PDF文档_第3张图片

三、开始建立静态PDF档

     在HomeController 下建立一个Action,如下图:

    .net core 使用Rotativa创建PDF文档_第4张图片

[HttpGet]
public IActionResult Pdf()
{
    return new ViewAsPdf("Pdf");
}

    然后建立cshtml

   

@{
    ViewData["Title"] = "Pdf";
}

Pdf

    启动项目,打印页面,可以看到下载pdf页面,最终PDF如下:

   .net core 使用Rotativa创建PDF文档_第5张图片

四、建立动态PDF档

    建立Controller  

[HttpGet]
public IActionResult PdfDemo()
{
    List pageList = new List();
    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
@{
    ViewData["Title"] = "PdfDemo";
}

PdfDemo

class="table table-bordered"> @foreach (var item in Model) { }
page_no page_name
@item.page_no @item.page_name

    最终生成PDF如下:

    .net core 使用Rotativa创建PDF文档_第6张图片

你可能感兴趣的:(.net core 使用Rotativa创建PDF文档)