將HTML轉換爲PDF可實現格式保留、可靠打印、文檔歸檔等多種用途,滿足不同領域和情境下的需求。本文將通過以下兩個示例,演示如何使用第三方庫Spire.PDF for .NET和QT插件在C# 中將Html 網頁(URL)或HTML字符串轉爲PDF文件。
HTML轉PDF所需工具:
1. Spire.PDF for .NET
首先需要安裝Spire.PDF for .NET到你的項目中,可以官網下載後手動引入,或通過nuget安裝。
2. Qt WebEngine
用到QT插件爲Qt WebEngine,以下是各操作系統對應的插件包,可點擊直接下載,然後解壓縮到指定路徑。
示例一:使用QT插件將Html 網頁(URL)轉爲PDF
步驟:
- 指定要轉換的URL地址、生成文件路徑和QT插件路徑;
- 調用 HtmlConverter.Convert(string url, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins) 方法來轉換 URL 爲 PDF 文件。
C# 代碼:
using Spire.Pdf.Graphics; using Spire.Pdf.HtmlConverter.Qt; using System.Drawing; namespace ConvertUrlToPdf { class Program { static void Main(string[] args) { //指定網頁URL地址 string url = "https://www.baidu.com/"; //指定輸出文件路徑 string fileName = "Url轉Pdf.pdf"; //指定插件路徑 string pluginPath = "F:\\plugins-windows-x64\\plugins"; //設置插件路徑 HtmlConverter.PluginPath = pluginPath; //將HTML網頁轉換爲PDF HtmlConverter.Convert(url, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0)); } } }
轉換百度首頁的效果圖:
示例二:使用QT插件將Html 字符串轉爲PDF
步驟:
- 通過File.ReadAllText() 方法從一個 html文件中讀取字符串;
- 指定生成文件和QT插件路徑;
- 調用 HtmlConverter.Convert(string htmlString, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins, Spire.Pdf.HtmlConverter.LoadHtmlType htmlType) 方法將 HTML 字符串轉換爲 PDF 文件。
C# 代碼:
using System.IO; using Spire.Pdf.HtmlConverter.Qt; using System.Drawing; using Spire.Pdf.Graphics; namespace ConvertHtmlStringToPdfWithPlugin { class Program { static void Main(string[] args) { //從.html文件中獲取HTML字符串 string htmlString = File.ReadAllText("示例.html"); //指定輸出文件路徑 string fileName = "Html字符串轉Pdf.pdf"; //指定插件路徑 string pluginPath = "F:\\plugins-windows-x64\\plugins"; //設置插件 HtmlConverter.PluginPath = pluginPath; //將HTML字符串轉換爲PDF HtmlConverter.Convert(htmlString, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0), Spire.Pdf.HtmlConverter.LoadHtmlType.SourceCode); } } }
請注意:只有內聯 CSS 樣式和內部 CSS 樣式可以在 PDF 上正確呈現。如果是外部 CSS 樣式,需要先將其轉換爲內聯或內部 CSS 樣式。
總結:通過以上兩個簡單的C#示例代碼,我們可以實現HTML網頁轉PDF,或HTML字符串轉PDF。Spire.PDF for .NET庫也支持在不使用插件的情況下將HTML轉爲PDF,但藉助QT插件可以實現更好的渲染效果。
參考: