.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如下:

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM