ITPub博客

首页 > 应用开发 > > .net core 使用Rotativa创建PDF文档

.net core 使用Rotativa创建PDF文档

作者:highhand 时间:2019-10-25 10:34:44 0 删除 编辑

一、下载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复制进去,

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

如下图:

三、开始建立静态PDF档

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

[HttpGet]

public IActionResult Pdf()

{

return new ViewAsPdf("Pdf");

}

然后建立cshtml

@{

ViewData["Title"] = "Pdf";

}

Pdf

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

四、建立动态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

@foreach (var item in Model)

{

@item.page_no

@item.page_name

}

page_nopage_name

最终生成PDF如下:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/810/viewspace-3124849/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-11-11

  • 博文量
    1479
  • 访问量
    30720