.net core 使用Rotativa创建PDF文档

Posted zbspace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core 使用Rotativa创建PDF文档相关的知识,希望对你有一定的参考价值。

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

    技术图片

以上是关于.net core 使用Rotativa创建PDF文档的主要内容,如果未能解决你的问题,请参考以下文章

如何为使用 Rotativa 生成动态内容的 PDF 生成页脚

Rotativa 和 Bootstrap 网格样式

Rotativa / Wkhtmltopdf图像不显示

Rotativa 在本地主机中工作,但在我的 Azure Web 应用程序中无法工作 - 2021

在 ASP.net core 3.1 Razor Pages 中打印 PDF

使用 ASP.NET CORE 中的链接从 Cloudinary 下载 pdf 文件