一、下載Rotaiva 工具 = > NuGet包管理器 = > 管理解決方案的NuGet程式包 在打開的頁面中搜索 Rotativa.AspNetCore 如下圖: 選中紅框的記錄,左邊會出現你解決方案中的所有項目,選中要添加的項目點擊安裝,安裝完成後項目後面會出現版本號,如下圖: 二、配置Rot ...
一、下載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如下: