跳過到頁腳內容
產品比較

Wkhtmltopdf C#比較包含代碼示例

IronPDF與 wkhtmltopdf

逐項比較各項功能,並提供來自官方文件、NuGet 清單和專案倉庫的證據。

⚠️
wkhtmltopdf 已棄用。該項目已存檔,不再維護。它使用過時的 Qt WebKit 引擎,不支援現代 CSS3、Flexbox、Grid 和目前的 JavaScript 標準。建議生產應用程式遷移到仍在積極維護的庫。
wkhtmltopdf
2
17項功能中的一項
2 是3 部分4 包裝依賴8 否
⚠ 已棄用/已存檔
IronPDF ✦
17
17項功能中的一項
17 是
✦ 全面覆蓋
特點 wkhtmltopdf IronPDF ✦
PDF Creation & Conversion
HTML/CSS 轉 PDF ⚠ Outdated Engine
核心功能是HTML轉PDF,但引擎是過時的Qt WebKit,缺乏對現代CSS3、Flexbox和Grid的支援。
✓ Yes
內建 Chromium 引擎-像素級完美的 HTML5/CSS3,支援 Flexbox、Grid 和現代 Web 標準。
JavaScript 執行 ~ Partial
支援 JS 相關選項,但老舊的 WebKit 引擎建議對複雜的 JS 程式碼使用其他替代方案。
✓ Yes
透過嵌入式 Chromium 實現完整的 HTML/CSS/JavaScript 渲染-動態圖表、單頁應用程式、互動式內容。
程式化生成 ✕ No
僅用於將 HTML 渲染為 PDF,並非通用的程式化 PDF 繪圖庫。
✓ Yes
透過PdfDocument建構函數建立新的/空白 PDF 檔案。完全透過程序控制。
Merge, Split & Rearrange ✕ No
僅提供轉換工具;沒有證據表明存在 PDF 頁面分割/合併 API。
✓ Yes
支援合併/拆分,並提供專門的操作指南。只需一行操作即可完成。
Editing & Manipulation
Headers, Footers & Page Numbers ✓ Yes
引擎提供頁首/頁尾功能(透過 CLI 標誌實現常見的 wkhtmltopdf 功能)。
✓ Yes
支援專用頁首/頁尾 API 和頁面佔位符。基於 HTML,可完全自訂。
Watermarks & Stamps ✕ No
這不是 PDF 編輯器;浮水印通常是在轉換之前透過更改 HTML 模板來實現的。
✓ Yes
使用 HTML/文字/圖像浮水印工具製作浮水印/圖章的教學。可完全控制不透明度、旋轉角度和位置。
Reading & Extraction
從 PDF 提取文字 ✕ No
僅提供轉換器功能;不具備文字擷取功能。
✓ Yes
ExtractAllText 支援排序選項(例如,視覺排序)。
將頁面渲染為圖像 ✕ No
wkhtmltopdf 將 HTML 轉換為 PDF;wkhtmltoimage 將 HTML 轉換為圖像,而不是 PDF 轉換為圖像。
✓ Yes
PDF轉影像/光柵化API文件齊全。支援原生PNG、JPEG、BMP輸出。
掃描PDF的OCR ✕ No
OCR功能不在HTML→PDF轉換器的範圍內。
✓ Via IronOCR
使用 OCR 建立可搜尋的 PDF 檔案。透過 IronOCR 集成,支援 127 種以上的語言。
Security & Compliance
數位簽名 ✕ No
wkhtmltopdf 不支援 PDF 簽名。
✓ Yes
專用簽章指南,支援 X509/PFX 憑證。
PDF/A 合規性 ✕ No
PDF/A 一致性工作流程未被記錄為支援的輸出格式。
✓ Yes
PDF/A 轉換指南(例如,PDF/A-3B 轉換詳情)。符合企業合規要求。
Platform & Deployment
跨平台支援 ⚙ Wrapper-Dependent
跨平台運行依賴於為每個作業系統安裝了正確的本地二進位檔案。並非獨立運作。
✓ Yes
OS-specific NuGet packages + macOS & Linux guides. Windows, Linux, macOS, ARM supported.
伺服器/Docker部署 ⚙ Wrapper-Dependent
需要發布原生二進位檔案;專案說明中提到引擎仍處於舊版本狀態。 Docker 配置較為複雜。
✓ Yes
官方 Azure Functions + Docker 指南;可選的獨立引擎容器。
首次 PDF 產生時間 ~ Complex
需要原生二進位檔案管理和封裝器集成,並非簡單的 NuGet 安裝。
✓ Simple
快速入門指南展示了 HTML→PDF 的安裝和最小程式碼。單一Install-Package IronPdf
Licensing & Support
許可清晰度 ~ Complex
LGPLv3 許可引入了 copyleft 的考慮;不同的 .NET 封裝器有不同的許可。
✓ Clear
最終用戶許可協議和許可條款已公開記錄。永久商業許可。
商業支援/服務等級協議 ? Unknown
引擎為開源軟體(已存檔);引用的資料中未描述供應商的服務等級協定 (SLA)。僅提供社區支援。
✓ 24/5 SLA
支援入口網站 + "24/5 技術支援",並保證服務等級協定 (SLA) — 電子郵件、線上聊天、電話。
文檔质量 ~ Partial
引擎的 CLI 文件非常詳盡,但 .NET 封裝器的文件品質參差不齊。
✓ Extensive
包含完整的"入門/操作指南/範例"文檔,以及可複製貼上的程式碼範例和影片教學。
摘要: wkhtmltopdf 是一個已棄用的 HTML 轉 PDF 轉換器,它使用過時的 Qt WebKit 引擎。它無法提取文字、對 PDF 進行簽署、產生 PDF/A 檔案、合併/分割頁面、新增浮水印或柵格化頁面,並且部署時需要手動管理本機二進位檔案。
IronPDF 是一個現代化的、積極維護的替代工具——免費試用 30 天 →

在看似多不勝數的選項中,選擇適合您需求的 PDF 函式庫是相當困難的。 比較時,關鍵因素包括所提供的功能與您的需求、支援與文件的層級、學習曲線以及授權成本。 最重要的是,還必須衡量安全方面的影響。

本次比較涵蓋了兩個具有不同設計概念的 PDF 產生函式庫:WkHtmlToPdf 和 IronPDF。 WkHtmlToPdf 以其簡單易用的命令列 HTML 轉 PDF 功能而聞名,許多團隊都依靠它來實現這一目的。 然而,在 C# 中使用 WkHtmlToPdf 可能會帶來安全風險。 由於它依賴外部可執行檔 (WebKit),因此可能會被利用漏洞或不當的指令消毒,冒著透過精心製作的 HTML 或參數入侵伺服器的風險。

IronPDF 是一個託管的 .NET 程式庫,它在應用程式的安全上下文中運行,從而減少了與外部程序相關的攻擊面。 以下各節比較了它們的功能、渲染能力和安全架構。

IronPDF。 和 WkHtmlToPdf 是什麼?

IronPDF 是一個用於在 .NET 框架內建立、操作和處理 PDF 的 C# 程式庫。 其 API 涵蓋 HTML 到 PDF 的轉換、文字和圖像提取、表單處理以及文件安全選項(如加密和數位簽名)——所有這些都可透過單一 NuGet 套件存取。 您可以透過 NuGet 套件管理器控制台安裝 IronPDF,並在幾分鐘內執行該程式庫。 欲了解更多信息,請訪問IronPDF 官方網站

WkHtmlToPdf 是一個 .NET Core P/Invoke 封裝函式庫,用於封裝 WkHtmlToPdf 函式庫。 WkHtmlToPdf 庫是一個流行的工具,它使用 Qt WebKit 渲染引擎將 HTML 頁面轉換為 PDF。這個開源程式庫是從 DinkToPdf 分支出來的,專注於 HTML 到 PDF 的轉換,並強調簡潔性。 安裝容易 下載並執行 WkHtmlToPdf 可執行檔之後,您只需確保將其新增至系統的路徑環境變數。 WkHtmlToPdf 是一個輕量級程式庫,但它的範圍側重於轉換,而不是更廣泛的 PDF 操作。 為了在您自己的環境中評估 IronPDF 的安全性和功能差異,我們提供 30 天免費試用

跨平台相容性

IronPDF。

IronPDF 支援 .NET 框架內的多種環境,可在不同的平台上提供一致的操作。

  • .NET版本:

    • 完全以 C#、VB.NET、F# 寫成,並支援這些語言。
    • .NET Core(8、7、6、5 和 3.1+)。
    • .NET Standard (2.0+)。
    • .NET Framework (4.6.2以上)。

*應用環境: IronPDF 可在各種應用環境中執行,例如 Windows、Linux、Mac、 Docker 、Azure 和 AWS。

  • IDE:可與 Microsoft Visual Studio 和 JetBrains Rider & ReSharper 等 IDE 搭配使用。

  • 作業系統與處理器:支援多種不同的作業系統與處理器,包括 Windows、Mac、Linux、x64、x86、ARM。

如需 IronPDF 兼容性的詳細資訊,請造訪 IronPDF兼容性

WkHtmlToPdf。

  • .NET版本:作為一個命令列工具,WkHtmlToPdf 本身並沒有直接的 .NET 支援,然而,.NET 開發人員通常會使用包裝程式或函式庫與其互動,例如 DinkToPdf。

  • 應用程式環境: WkHtmlToPdf 可在 Windows、Linux 和 macOS 等多種應用程式環境中順利運作。

  • 程式語言: WkHtmlToPdf 主要透過指令列工具使用,或與 C#、Java、Python、PHP 和 Node.js 等程式語言整合。

安裝

安裝 IronPDF。

若要使用 IronPDF,請透過 Visual Studio 中的 NuGet Package Manager 安裝:

Install-Package IronPdf

安裝 Wkhtmltopdf

1.下載安裝程式:

  • 前往 WkHtmlToPdf 下載頁面。
  • 在"Windows"部分,下載最新穩定版本的安裝程式 (例如 .exe 檔案)。

2.執行安裝程式:

  • 雙擊下載的 .exe 檔案。
  • 按照安裝提示進行安裝。
  • 在安裝過程中,您可以選擇將 WkHtmlToPdf 加入您的系統 PATH,以便從任何命令提示符存取。

3.驗證安裝:

  • 開啟 Command Prompt (cmd)。
  • 輸入 wkhtmltopdf --version 檢查是否已正確安裝。 您應該可以看到印在螢幕上的版本號碼。

IronPDF 和 WkHtmlToPdf 在功能上有何不同?

在比較 IronPDFWkHtmlToPdf 時,必須先瞭解這兩個函式庫在 PDF 產生和處理方面所提供的功能。

IronPDF。 功能:

  • PDF 轉換: IronPDF 使用嵌入式 Chromium 引擎將HTML 轉換為 PDF,並完全支援 HTML5、CSS3(包括 Flexbox 和 Grid)和 JavaScript。 它還可以轉換其他格式,例如 DOCX、圖像、RTF 等。

  • PDF 生成:使用 IronPDF,您可以從 URL、图像格式、ASPX 文件或 HTML 字符串生成 PDF。

*安全特性: IronPDF 將加密、密碼保護和細粒度的權限設定(唯讀、複製/貼上限制、列印控制)作為 API 中的一流操作。

  • PDF 編輯功能: IronPDF 可以處理現有的 PDF 文檔,對其進行編輯,並讀取 PDF 文件。 編輯功能包括新增頁首和頁尾、在頁面上新增文字和影像、套用自訂浮水印、處理 PDF 表單以及分割或合併 PDF 檔案。

如需 IronPDF 功能的詳細資訊,請造訪 IronPDF功能

WkHtmlToPdf。 C# 主要功能:

  • HTML 至 PDF 轉換: 將 HTML 頁面、檔案、字串和 CSS 內容轉換為 PDF,並保留原始版面。

  • 自訂選項:支援頁面大小、邊界、頁首、頁尾等。

  • 開放原始碼:在 MIT 授權下可自由使用。

  • 跨平台相容性: 可在 Windows、Linux 和 macOS 環境下運作。

並排程式碼範例

HTML 至 PDF 轉換

IronPDF:

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: Images, CSS and JavaScript.
' An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf(使用 DinkToPdf):

using DinkToPdf;
var converter = new BasicConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello World</h1>" } }
};
byte[] pdf = converter.Convert(doc);
System.IO.File.WriteAllBytes("HtmlToPdf.pdf", pdf);
using DinkToPdf;
var converter = new BasicConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello World</h1>" } }
};
byte[] pdf = converter.Convert(doc);
System.IO.File.WriteAllBytes("HtmlToPdf.pdf", pdf);
Imports DinkToPdf
Private converter = New BasicConverter(New PdfTools())
Private doc = New HtmlToPdfDocument() With {
	.Objects = {
		New ObjectSettings() With {.HtmlContent = "<h1>Hello World</h1>"}
	}
}
Private pdf() As Byte = converter.Convert(doc)
System.IO.File.WriteAllBytes("HtmlToPdf.pdf", pdf)
$vbLabelText   $csharpLabel

WkHtmlToPdf(使用命令列)

wkhtmltopdf myfile.html myfile.pdf
wkhtmltopdf myfile.html myfile.pdf
SHELL

IronPDF 只需幾行程式碼即可根據 HTML 內容產生像素級完美的 PDF 檔案。 其內建的 Chromium 引擎支援現代 CSS3、Flexbox 和 Grid,因此渲染的 PDF 與原始來源檔案非常接近。 WkHtmlToPdf 的核心任務是 HTML 轉 PDF,無論透過封裝庫或命令列調用,都能簡潔且有效率地完成轉換。團隊通常會遇到的問題是現代 CSS 佈局:WkHtmlToPdf 的 Qt WebKit 引擎並不完全支援 Flexbox 或 Grid,這可能會導致在現代設計中出現意想不到的渲染結果。

加密 PDF 檔案

IronPDF:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf:

加密不在 WkHtmlToPdf 的目前範圍內; 要實現這一目標需要一個單獨的第三方函式庫。

IronPDF 提供加密 PDF 檔案的直接 API,包括密碼保護、唯讀強制執行和細粒度的權限控制。 WkHtmlToPdf 專注於轉換步驟,因此需要加密的團隊通常會在生成 PDF 後整合第二個程式庫來處理文件安全性。

重制 PDF 內容

IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf:

WkHtmlToPdf 的功能集不包含內容編輯功能。

IronPDF 的編輯API 只需一次方法呼叫即可編輯指定內容-如上例所示,只需三行程式碼。 由於 WkHtmlToPdf 被設計為轉換工具而不是 PDF 編輯器,因此編輯功能不在其架構範圍內。 需要此功能的團隊將會新增一個單獨的 PDF 處理庫。

數位簽章 PDF 檔案

IronPDF:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf C#:

WkHtmlToPdf 並非設計用於對 PDF 檔案進行簽名; 此功能需要單獨的庫。

IronPDF 的數位簽章API 接受 X509/PFX 證書,並透過兩次方法呼叫對文件進行簽名,從而簡化了需要大規模程式化簽名的工作流程。 WkHtmlToPdf 本身並不具備處理 PDF 簽章的功能; 但是,如果您將其與另一個庫一起使用,則該庫可能提供您需要的簽名功能。

在 PDF 上應用自訂水印

IronPDF:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf:

水印功能並非 WkHtmlToPdf 的原生功能之一。 相反,您需要在轉換之前在來源 HTML 中實現 CSS 樣式,或者使用可以將浮水印套用到現有文件的單獨 PDF 庫。

IronPDF 的浮水印工具採用基於 HTML/CSS 的方法,使開發人員能夠在不離開 .NET API 的情況下控制不透明度、旋轉和位置。 WkHtmlToPdf 可以透過在轉換之前對來源 HTML 應用 CSS 樣式來近似水印——這種方法對於較簡單的情況有效,但當您需要為並非由您自己的 HTML 生成的現有 PDF 添加浮水印時,它就達到了設計的極限。

標示圖片和文字

IronPDF:

using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
$vbLabelText   $csharpLabel
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Imports System

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create image stamper
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf C#:

WkHtmlToPdf 不包含內建的圖章工具。 通常的解決方法是在轉換之前,將所需的圖章嵌入到來源 HTML 和 CSS 中。

IronPDF 提供專用的 TextStamperImageStamper 類,用於在 PDF 頁面上添加文字和圖像——包括 Google Fonts 支援和精確的對齊控制。 WkHtmlToPdf 沒有內建的加蓋工具,但您可以透過在轉換之前將加蓋的內容直接嵌入到來源 HTML 和 CSS 中來實現類似的效果。

DOCX 至 PDF 轉換

IronPDF:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf C#:

WkHtmlToPdf 只專注於 HTML 輸入,因此 DOCX 轉換需要額外的函式庫。

IronPDF 透過其 DocxToPdfRenderer 類別處理DOCX 到 PDF 的轉換-以上範例中的三行程式碼。 由於 WkHtmlToPdf 的渲染管道是基於 HTML 輸入,因此 DOCX 不是受支援的來源格式。 需要此功能的團隊會將單獨的轉換庫與 WkHtmlToPdf 整合在一起。

程式碼範例比較摘要

若要了解 IronPDF 的全部功能,請瀏覽 IronPDF使用指南,其中透過複製貼上的程式碼範例逐步講解每個功能。

定價與授權:IronPDF vs. WkHtmlToPdf

IronPDF。

IronPDF有不同的購買授權等級和附加功能。 開發人員也可以購買 Iron Suite,以兩件產品的價格即可使用 IronSoftware 的所有產品。 如果您尚未準備好購買授權,IronPDF 提供 免費試用,讓您可以在承諾購買授權之前,探索它所提供的所有功能。

  • 永久授權:根據您的團隊規模、專案需求和地點數量,提供一系列永久授權。 每種授權類型都附有電子郵件支援。

  • Lite License: 此 Lite License 支援一位開發人員、一個地點和一個專案。

  • Plus License: 支援三位開發人員、三個地點和三個專案,這是 Lite License 的進階版本。 Plus License 除了提供基本的電子郵件支援外,還提供聊天支援和電話支援。

  • Professional License: 此 License 適用於較大型的團隊,支援十位開發人員、十個地點和十個專案。 它提供與前幾層相同的聯絡支援管道,但也提供螢幕分享支援。

  • 免版稅的再發行: IronPDF 的授權也提供免版稅的再發行保障,但需額外支付費用。

  • 不間斷的產品支援: IronPDF 提供持續的產品更新、安全功能升級,以及工程團隊的支援。

  • Iron套件:您可以使用所有Iron Software產品,包括IronPDFIronOCRIronWordIronXLIronBarcodeIronQRIronZIPIronPrintIronWebScraper

WkHtmlToPdf。

WkHtmlToPdf 是免費使用的開放原始碼工具,採用 LGPL 授權,只要您不修改函式庫本身,就可以在專屬應用程式中使用 wkhtmltopdf。

除了授權費用之外,專案總成本還包括開發人員花費在管理原生二進位依賴項、組裝用於加密、簽署和編輯的單獨程式庫以及解決 Qt WebKit 引擎有限的 CSS3 支援上的時間。 對於評估多年專案生命週期成本的團隊來說,這些整合和維護成本往往超過開源授權和商業授權之間的差異。

文件和支援:IronPDF vs. WkHtmlToPdf

IronPDF。

IronPDF 提供全面的文件和支援:

  • 全面的說明文件: 涵蓋所有功能的廣泛且易於使用的說明文件。

  • 24/5支援:提供積極的工程師支援。

  • 視訊教學:YouTube 上提供了分步視訊指南。

  • 社群論壇:參與社群以獲得更多支援。

  • 定期更新:每月進行產品更新,以確保提供最新的功能和安全修補程式。

  • PDF API 參考:提供API 參考,以便您充分利用我們工具的功能。

如需瞭解更多資訊,請查看 IronPDF 廣泛的 說明文件,並請造訪 IronSoftware YouTube 頻道

WkHtmlToPdf。

  • GitHub: WkHtmlToPdf 的 GitHub 儲存庫是使用者可以報告他們在使用工具時所發現問題的地方。

  • Stack Overflow:在這裡,您可以找到許多與 WkHtmlToPdf 相關的問題與解答,並獲得社群建議。

  • 官方文件:官方文件提供安裝、使用、指令列選項和常見組態的詳細資訊。

您應該選擇哪一個程式庫?

IronPDF 和 WkHtmlToPdf 都用於在 C# 中產生 PDF,但它們針對的是複雜程度不同的領域。 IronPDF 透過一個 NuGet 套件,涵蓋了 PDF 的完整生命週期——包括轉換、加密、編輯、數位簽名、DOCX 轉 PDF 等,並配備了積極維護的 Chromium 渲染引擎。對於專案涉及多個 PDF 操作的團隊而言,這種整合式方法可以減少需要管理的依賴項數量。

WkHtmlToPdf 因其專注於 HTML 到 PDF 轉換的直接方法而廣受歡迎,而且其零授權費用使其成為一個易於入門的工具。 團隊通常會遇到轉折點,即需求從轉換擴展到編輯、安全性或合規性——這些功能超出了 WkHtmlToPdf 的架構範圍。 鑑於該專案已存檔且 WebKit 引擎老化,需求不斷增長的團隊通常會發現這是評估正在積極維護的替代方案的自然時機。 最終,正確的選擇取決於您專案目前和預期的 PDF 需求。

您可以嘗試30天免費試用,以查看其可用功能。

請注意WkHtmlToPdf 是其各自所有者的註冊商標。 本網站與 WkHtmlToPdf 無任何關聯、背書或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較僅供參考,反映了撰寫時的公開信息。

常見問題解答

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。此外,您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。

IronPDF 和 WkHtmlToPdf 之間的主要區別是什麼?

IronPDF 提供包括文字提取、表單處理、加密和數字簽名在內的全面功能集,並具有跨平台兼容性。WkHtmlToPdf 是一個開源工具,專注於簡單的 HTML 到 PDF 轉換。

如何在 .NET 專案中安裝 IronPDF?

您可以在 Visual Studio 中通過執行命令 Install-Package IronPDF 使用 NuGet 包管理器安裝 IronPDF。

是否可以使用 IronPDF 加密 PDF?

是的,IronPDF 提供加密 PDF 文件、設置密碼和分配權限的選項,以增強文檔安全性。

IronPDF 是否支援跨平台開發?

事實上,IronPDF 與 .NET 框架內的各種環境兼容,包括 Windows、Linux、Mac、Docker、Azure 和 AWS。

IronPDF 能將 DOCX 文件轉換為 PDF 嗎?

是的,IronPDF 包含無縫將 DOCX 文件轉換為 PDF 的功能。

IronPDF 用戶可以獲得哪些支援?

IronPDF 提供詳細的文檔、24/5 工程師支援、視頻教程、社區論壇和定期軟體更新。

如何安裝 WkHtmlToPdf?

要安裝 WkHtmlToPdf,請從其官方網站下載可執行文件,運行安裝程序,並確保其包含在您的系統 PATH 中。

使用 WkHtmlToPdf 的許可影響是什麼?

WkHtmlToPdf 是根據 LGPL 許可證分發的,允許在開源和專有應用中免費使用。

WkHtmlToPdf 是否提供 PDF 加密支援?

不,WkHtmlToPdf 不包括原生的 PDF 加密支援。需要額外的第三方庫來實現加密功能。

Kye Stuart
技術作家

Kye Stuart 在 Iron Software 將編碼熱情與寫作技能相結合。接受過 Yoobee 學院的軟件部署教育,他現在將複雜的技術概念轉化為清晰的教育內容。Kye 重視終身學習,並接受新技術挑戰。

在工作之外,他喜歡 PC 遊戲,並在 Twitch 上進行直播,以及喜好戶外活動如園藝和遛狗 (Jaiya)。Kye 的直截了當風格,使他成為 Iron Software 全球解密技術使命的關鍵人物。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我