C# - 將HTML網頁、HTML字符串轉換爲PDF

將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

步驟:

  1. 指定要轉換的URL地址、生成文件路徑和QT插件路徑;
  2. 調用 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

步驟:

  1. 通過File.ReadAllText() 方法從一個 html文件中讀取字符串;
  2. 指定生成文件和QT插件路徑;
  3. 調用 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插件可以實現更好的渲染效果。

 


 

參考:

C#/VB.NET 將 HTML 轉換爲 PDF

Spire.PDF for .NET 各功能中文教程

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章