加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net core 使用Rotativa创建PDF文档

发布时间:2020-12-16 09:26:30 所属栏目:asp.Net 来源:网络整理
导读:一、下载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复制进去,

??? 此两个文件在此网站下载:https://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如下:

???

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读