在日常開發(fā)中,我們常常需要將動態(tài)生成的 HTML 內容轉換為 PDF 文件。無論是用于打印、存檔還是分享,PDF 格式都因其跨平臺兼容性和穩(wěn)定性而備受青睞。今天,我們就來介紹一個強大的工具——HtmlToPDFCore,可以輕松實現(xiàn) HTML 到 PDF 的轉換,這真是輕便快捷重量級。
一、HtmlToPDFCore 是什么?
HtmlToPDFCore 是一個基于 .NET Core 的開源庫,能夠將 HTML 文件或字符串轉換為高質量的 PDF 文件。內置了適用于 Windows、Linux 和 macOS 的 Rotativa 文件,因此可以無縫運行在多種環(huán)境中。
主要特點:
? 支持多平臺(Windows、Linux、macOS)。
? 高質量的 PDF 輸出。
? 易于集成到 .NET Core 項目中。
? 提供豐富的配置選項(如頁面大小、方向、邊距等)。
? 無需依賴項(wkhtmltopdf)
二、適用場景
HtmlToPDFCore 可以廣泛應用于以下場景:
1. 生成報表:將動態(tài)生成的 HTML 報表轉換為 PDF。
2. 合同和協(xié)議:將在線編輯的合同內容保存為 PDF。
3. 發(fā)票和收據:將交易記錄導出為 PDF 文件。
4. 文檔歸檔:將網頁內容保存為 PDF 以便長期存儲。
三、環(huán)境支持
HtmlToPDFCore 已經過測試,支持以下運行環(huán)境:
? Windows
? Linux
? Microsoft Azure 應用服務(使用 Linux 服務計劃)
? Docker 容器
四、安裝方法
在 Visual Studio 中,可以通過 NuGet 包管理器控制臺安裝 HtmlToPDFCore。執(zhí)行以下命令即可完成安裝:
Install-Package HtmlToPDFCore
如果你使用的是 .NET CLI,也可以通過以下命令安裝:
dotnet add package HtmlToPDFCore
五、快速上手
展示如何使用 HtmlToPDFCore 將 HTML 字符串轉換為 PDF 文件
using System; using System.IO; using Wkhtmltopdf.NetCore; classProgram { staticvoidMain(string[] args) { // 定義 HTML 內容 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(); // (可選)設置 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 轉換為 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 提供了許多高級配置選項,可以幫助你更精細地控制生成的 PDF 文件。以下是一些常用的配置參數(shù):