在日常開發(fā)中,我們常常需要將動態(tài)生成的 HTML 內(nèi)容轉(zhuǎn)換為 PDF 文件。無論是用于打印、存檔還是分享,PDF 格式都因其跨平臺兼容性和穩(wěn)定性而備受青睞。今天,我們就來介紹一個強(qiáng)大的工具—— HtmlToPDFCore ,可以輕松實現(xiàn) HTML 到 PDF 的轉(zhuǎn)換,這真是輕便快捷重量級。
一、HtmlToPDFCore 是什么? HtmlToPDFCore 是一個基于 .NET Core 的開源庫,能夠?qū)?HTML 文件或字符串轉(zhuǎn)換為高質(zhì)量的 PDF 文件。內(nèi)置了適用于 Windows、Linux 和 macOS 的 Rotativa 文件,因此可以無縫運(yùn)行在多種環(huán)境中。
主要特點: ? 支持多平臺(Windows、Linux、macOS)。 ? 提供豐富的配置選項(如頁面大小、方向、邊距等)。 二、適用場景 HtmlToPDFCore 可以廣泛應(yīng)用于以下場景:
1. 生成報表 :將動態(tài)生成的 HTML 報表轉(zhuǎn)換為 PDF。 2. 合同和協(xié)議 :將在線編輯的合同內(nèi)容保存為 PDF。 3. 發(fā)票和收據(jù) :將交易記錄導(dǎo)出為 PDF 文件。 4. 文檔歸檔 :將網(wǎng)頁內(nèi)容保存為 PDF 以便長期存儲。 三、環(huán)境支持 HtmlToPDFCore 已經(jīng)過測試,支持以下運(yùn)行環(huán)境:
? Microsoft Azure 應(yīng)用服務(wù) (使用 Linux 服務(wù)計劃) 四、安裝方法 在 Visual Studio 中,可以通過 NuGet 包管理器控制臺安裝 HtmlToPDFCore。執(zhí)行以下命令即可完成安裝:
Install-Package HtmlToPDFCore
如果你使用的是 .NET CLI,也可以通過以下命令安裝:
dotnet add package HtmlToPDFCore
五、快速上手 展示如何使用 HtmlToPDFCore 將 HTML 字符串轉(zhuǎn)換為 PDF 文件
using System; using System.IO; using Wkhtmltopdf.NetCore; class Program { static void Main ( string [] args ) { // 定義 HTML 內(nèi)容 var html = @" <html> <title>PDF 示例</title> <body> <b>PDF 示例 - Carlos dos Santos</b> <b> 公眾號:Net分享 </b> <b> https://mp.weixin.qq.com/s/LWuzVwJ6J9UyqnmP_1ecPw</b> <b>NetShre :https://www.dotnetshare.com</b> </body> </html>" ; // 初始化 HtmlToPDF 對象 var pdf = new HtmlToPDF(); // (可選)設(shè)置 PDF 參數(shù) // pdf.DisableSmartShrinking = true; // pdf.Margins = new PageMargins(5, 5, 5, 5); // pdf.Orientation = PageOrientation.Landscape; // pdf.PageSize = Wkhtmltopdf.NetCore.Options.Size.A4; // 將 HTML 轉(zhuǎn)換為 PDF 字節(jié)流 var buffer = pdf.ReturnPDF(html); // 定義輸出文件路徑 string pdfFile = "output.pdf" ; // 如果文件已存在,則刪除 if (File.Exists(pdfFile)) File.Delete(pdfFile); // 將字節(jié)流寫入文件 using ( var f = new FileStream(pdfFile, FileMode.Create)) { f.Write(buffer, 0 , buffer.Length); f.Flush(); } Console.WriteLine( "PDF 文件已成功生成!" ); } }
六、高級配置 HtmlToPDFCore 提供了許多高級配置選項,可以幫助你更精細(xì)地控制生成的 PDF 文件。以下是一些常用的配置參數(shù):
DisableSmartShrinking
Margins
Orientation
PageSize
七、項目地址 https://github.com/carloscds/HtmlToPDFCore ?
八、總結(jié) HtmlToPDFCore 是一個功能強(qiáng)大且易于使用的工具,可以幫助開發(fā)者快速實現(xiàn) HTML 到 PDF 的轉(zhuǎn)換。無論你是需要生成報表、合同還是其他類型的文檔,它都能滿足你的需求。 需要注意的是在liunx環(huán)境或者是docker需要安裝對應(yīng)的字體 ,趕快動手試試吧!
該文章在 2025/3/24 17:29:11 編輯過