您的位置 首页 php

.net core 使用Rotativa创建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.Use Mvc (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 core 使用Rotativa创建PDF文档

文章地址:https://www.zhihuclub.com/80057.shtml

关于作者: 智云科技

热门文章

网站地图