绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
.net core 使用Rotativa创建PDF文档
2019-10-25 10:34:44

一、下载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如下:

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~