经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP.net » 查看文章
.net core 使用Rotativa创建PDF文档
来源:cnblogs  作者:宙冰  时间:2019/10/8 9:35:30  对本文有异议

一、下载Rotaiva

    工具  = >  NuGet包管理器  = >  管理解决方案的NuGet程序包

    在打开的页面中搜索 Rotativa.AspNetCore 如下图:

   

    选中红框的记录,左边会出现你解决方案中的所有项目,选中要添加的项目点击安装,安装完成后项目后面会出现版本号,如下图:

   

二、配置Rotaiva

    在Startup.cs的Rotaiva方法中添加以下内容:  

  1. RotativaConfiguration.Setup(env);

    完整代码如下:  

  1. public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  2. {
  3. if (env.IsDevelopment())
  4. {
  5. app.UseDeveloperExceptionPage();
  6. }
  7. else
  8. {
  9. app.UseExceptionHandler("/Home/Error");
  10. }
  11. RotativaConfiguration.Setup(env);//RotativaConfiguration 转PDF 功能
  12. app.UseStaticFiles();
  13. app.UseCookiePolicy();
  14. app.UseMvc(routes =>
  15. {
  16. routes.MapRoute(
  17. name: "default",
  18. template: "{controller=Home}/{action=Index}/{id?}");
  19. });
  20. }
  21. }

    添加PDF转换工具

    在wwwroot目录下添加Rotativa目录 ,再把wkhtmltoimage.exe和wkhtmltopdf.exe复制进去,

    此两个文件在此网站下载:https://github.com/webgio/Rotativa.AspNetCore

    如下图:

   

三、开始建立静态PDF档

     在HomeController 下建立一个Action,如下图:

   

  1. [HttpGet]
  2. public IActionResult Pdf()
  3. {
  4. return new ViewAsPdf("Pdf");
  5. }

    然后建立cshtml

   

  1. @{
  2. ViewData["Title"] = "Pdf";
  3. }
  4. <h2>Pdf</h2>

    启动项目,打印页面,可以看到下载pdf页面,最终PDF如下:

   

四、建立动态PDF档

    建立Controller  

  1. [HttpGet]
  2. public IActionResult PdfDemo()
  3. {
  4. List<tbl_page> pageList = new List<tbl_page>();
  5. pageList.Add(new tbl_page()
    {
  6. page_name="1",
  7. page_no="1"
  8. });
  9. pageList.Add(new tbl_page()
  10. {
  11. page_name = "2",
  12. page_no = "2"
  13. });
  14. pageList.Add(new tbl_page()
  15. {
  16. page_name = "3",
  17. page_no = "3"
  18. });
  19. return new ViewAsPdf(pageList);
  20. }

    生成cshtml  

  1. @model IEnumerable<NetCoreApiDemo.Model.tbl_page>
  2. @{
  3. ViewData["Title"] = "PdfDemo";
  4. }
  5. <h2>PdfDemo</h2>
  6. <table class="table table-bordered">
  7. <thead>
  8. <tr>
  9. <th>page_no</th>
  10. <th>page_name</th>
  11. </tr>
  12. </thead>
  13. <tbody>
  14. @foreach (var item in Model)
  15. {
  16. <tr>
  17. <td>@item.page_no</td>
  18. <td>@item.page_name</td>
  19. </tr>
  20. }
  21. </tbody>
  22. </table>

    最终生成PDF如下:

   

原文链接:http://www.cnblogs.com/zbspace/p/11617725.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号