ibcadmin 发表于 2019-10-12 10:21:54

.net core 使用Rotativa创建PDF文档

<p>一、下载Rotaiva</p>
<p>    工具= >NuGet包管理器= >管理办理方案的NuGet步伐包</p>
<p>    在打开的页面中搜刮 Rotativa.AspNetCore 如下图:</p>
<p>    <div align="center"></div></p>
<p>    选中红框的记录,左边会出现你办理方案中的所有项目,选中要添加的项目点击安装,安装完成后项目背面会出现版本号,如下图:</p>
<p>    <div align="center"></div></p>
<p>二、配置Rotaiva</p>
<p>    在Startup.cs的Rotaiva方法中添加以下内容:</p>

RotativaConfiguration.Setup(env);

<p>    完备代码如下:</p>

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?}");
      });
    }
}

<p>    添加PDF转换工具</p>
<p>    在wwwroot目次下添加Rotativa目次 ,再把wkhtmltoimage.exe和wkhtmltopdf.exe复制进去,</p>
<p>    此两个文件在此网站下载:https://github.com/webgio/Rotativa.AspNetCore</p>
<p>    如下图:</p>
<p>    <div align="center"></div></p>
<p>三、开始创建静态PDF档</p>
<p>   在HomeController 下创建一个Action,如下图:</p>
<p>    <div align="center"></div></p>


public IActionResult Pdf()
{
    return new ViewAsPdf("Pdf");
}

<p>    然后创建cshtml</p>
<p>    <div align="center"></div></p>

@{
    ViewData["Title"] = "Pdf";
}

<h2>Pdf</h2>

<p>    启动项目,打印页面,可以看到下载pdf页面,终极PDF如下:</p>
<p>   <div align="center"></div></p>
<p>四、创建动态PDF档</p>
<p>    创建Controller</p>


public IActionResult PdfDemo()
{
    List<tbl_page> pageList = new List<tbl_page>();
    pageList.Add(new tbl_page() <br />    {
      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);
}

<p>    天生cshtml</p>

@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>

<p>    终极天生PDF如下:</p>
<p>    <div align="center"></div></p><br><br/><br/><br/><br/><br/>来源:<a href="https://www.cnblogs.com/zbspace/p/11617725.html" target="_blank">https://www.cnblogs.com/zbspace/p/11617725.html</a>
页: [1]
查看完整版本: .net core 使用Rotativa创建PDF文档