首頁  >  文章  >  後端開發  >  html 轉 pdf c

html 轉 pdf c

PHPz
PHPz原創
2023-05-09 11:15:07751瀏覽

HTML轉PDF C#:如何在ASP.NET MVC應用程式中將HTML轉換為PDF

#在今天的數位時代,越來越多人使用PDF文件存檔、共享和檢視文件。有時,將HTML轉換成PDF檔案可以讓您的使用者更方便地瀏覽文件。在本篇文章中,我們將會了解如何使用C#將HTML轉換為PDF。

為了將HTML轉換為PDF,我們需要使用一個名為WkHtmlToPdf的函式庫。這個函式庫是基於WebKit,可以將HTML頁面轉換為PDF檔。該程式庫提供了許多設定選項,可以輕鬆地將HTML轉換成想要的格式。

讓我們開始吧!首先需要從NuGet套件管理器安裝WkHtmlToPdf函式庫。開啟Visual Studio,並在專案中右鍵點選「引用」路徑,選擇「管理NuGet套件」。在搜尋框中輸入“WkHtmlToPdf”,然後按回車。選擇該庫,並安裝它。

接下來,我們需要建立一個名為「HtmlToPdfConverter」的類,負責處理HTML到PDF的轉換。在這個類別中,我們需要寫以下方法:

public byte[] ConvertHtmlToPdf(string html)
{
    byte[] pdfBuffer; // 将转换后的PDF文件存储到字节数组中

    var options = new PdfOptions
    {
        // 设置PDF选项,包括页面大小、宽度和高度等
        PageSize = PaperKind.A4,
        Orientation = PdfOrientation.Portrait
    };

    var htmlToPdf = new HtmlToPdfConverter(options); // 创建HTML转换PDF对象

    pdfBuffer = htmlToPdf.GeneratePdf(html); // 生成PDF文件,并将其存储在缓冲区中

    return pdfBuffer;
}

透過上述程式碼,我們將參數化的HTML轉換為PDF格式,然後將檔案儲存在位元組陣列中。 HtmlToPdfConverter類別是WkHtmlToPdf庫的核心類,它提供了許多有用的選項來配置PDF輸出。在上述程式碼中,我們設定了頁面大小和頁面方向等選項。

接下來,讓我們如何在ASP.NET MVC應用程式中使用我們的HtmlToPdfConverter類別。首先,我們需要在控制器中建立一個操作方法來呼叫我們的轉換器。例如:

public ActionResult ConvertHtmlToPdf()
{
    string html = "<html><body><h1>测试HTML转PDF</h1></body></html>";

    byte[] pdfBuffer = new HtmlToPdfConverter().ConvertHtmlToPdf(html);

    return File(pdfBuffer, "application/pdf"); // 返回转换后的PDF文件
}

在這個範例中,我們從簡單的HTML字串中取得內容,將其傳遞給我們的HtmlToPdfConverter方法,並從傳回的位元組陣列中取得PDF檔案。最後,我們使用MVC傳回類型「File」將PDF檔案傳送到客戶端。在這個回傳類型中,第一個參數是位元組數組,第二個參數是輸出MIME類型,也就是「application/pdf」。

最後,我們將操作方法配置為在某個URL上呼叫。例如,在預設路由中新增以下程式碼,以便存取「/Home/ConvertHtmlToPdf」:

routes.MapRoute(
    name: "ConvertHtmlToPdf",
    url: "Home/ConvertHtmlToPdf",
    defaults: new { controller = "Home", action = "ConvertHtmlToPdf" });

接下來,我們只需在應用程式中導航到該URL即可將HTML轉換為PDF。

本文中,我們介紹如何在ASP.NET MVC應用程式中使用C#將HTML轉換為PDF。我們使用WkHtmlToPdf庫來執行HTML到PDF的轉換,並使用簡單的操作方法將其輸出到客戶端。此方法可用於產生各種類型的PDF文件,有助於優化應用程式的使用者體驗和資料共享。

以上是html 轉 pdf c的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn