跳至页脚内容
产品比较

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。

  • IDEs:支持Microsoft Visual Studio和JetBrains Rider & ReSharper等集成开发环境。

  • 操作系统和处理器:支持多种不同的操作系统和处理器,包括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包管理器安装它:

Install-Package IronPdf

安装Wkhtmltopdf

  1. 下载安装程序:

    • 前往WkHtmlToPdf下载页面。
    • 在"Windows"部分下,下载最新的稳定版本安装程序(例如,.exe文件)。
  2. 运行安装程序:

    • 双击下载的.exe文件。
    • 按照安装提示进行操作。
    • 在安装过程中,您可以选择将WkHtmlToPdf添加到系统PATH中,以便从任何命令提示符访问。
  3. 验证安装:
    • 打开命令提示符 (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与WkHtmlToPdf

IronPDF。

IronPDF 为购买许可证提供了不同级别和附加功能。 开发人员还可以购买[Iron Suite](Iron Suite),以两种产品的价格获得IronSoftware的所有产品。 如果您还没准备好购买许可证,IronPDF提供了免费试用版,让您在购买许可证前探索所有功能。

  • 永久许可证:提供一系列永久许可证,具体取决于团队规模、项目需求和地点数量。 每种许可证类型都配有电子邮件支持。

  • Lite License:此许可证支持一位开发人员、一个地点和一个项目。

  • Plus License:支持三位开发人员、三个地点和三个项目,这是比lite许可证的进一步升级。 Plus许可证除了电子邮件支持外,还提供聊天支持和电话支持。

  • Professional License:此许可证适用于较大的团队,支持十位开发人员、十个地点和十个项目。 \u5b83\u63d0\u4f9b\u4e0e\u4e4b\u524d\u5c42\u6b21\u76f8\u540c\u7684\u8054\u7cfb\u652f\u6301\u6e20\u9053\uff0c\u4f46\u4e5f\u63d0\u4f9b\u5c4f\u5e55\u5171\u4eab\u652f\u6301\u3002

  • 免版税再发行:IronPDF的授权还提供附加成本的免版税再发行保障。

  • 不间断的产品支持:IronPDF提供持续的产品更新、安全功能升级,以及其工程团队的支持。

  • Iron Suite:您可以访问Iron Software的所有产品,包括IronPDFIronOCRIronWordIronXLIronBarcodeIronQRIronZIPIronPrintIronWebScraper

WkHtmlToPdf

WkHtmlToPdf是一个免费使用的开源工具,遵循LGPL许可证,该许可证允许您在专有应用程序中使用wkhtmltopdf,只要不修改库本身。

除了许可费用之外,项目总成本还包括开发人员花费在管理原生二进制依赖项、组装用于加密、签名和编辑的单独库以及解决 Qt WebKit 引擎有限的 CSS3 支持上的时间。 对于评估多年项目生命周期成本的团队来说,这些集成和维护成本往往会超过开源许可和商业许可之间的差异。

文档和支持:IronPDF与WkHtmlToPdf

IronPDF。

IronPDF 提供全面的文档和支持:

  • 全面的文档: 涵盖所有功能的详尽且用户友好的文档。

  • 24/5支持: 提供活跃的工程师支持。

  • 视频教程: 在YouTube上提供分步视频指导。

  • 社区论坛: 提供活跃的社区以获得额外支持。

  • 定期更新: 每月产品更新以确保最新功能和安全补丁。

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

更多信息,请查看IronPDF的广泛文档,并访问Iron Software 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天免费试用,了解其可用功能。

[{i:(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 小时在线。
聊天
电子邮件
打电话给我