Wkhtmltopdf C#比較包含代碼示例
IronPDF vs wkhtmltopdf
功能逐項比較,來自官方文件、NuGet列表和專案儲存庫的證據
| 功能 | wkhtmltopdf | IronPDF ✦ |
|---|---|---|
| PDF建立與轉換 | ||
| 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渲染—動態圖表、SPA、互動內容。
|
| 程式生成 |
✕ No
設計僅為將HTML渲染為PDF—不是通用程式化PDF繪製庫。
|
✓ Yes
通過
PdfDocument構造函式建立新的/空白的PDF。提供完全的程式化控制。 |
| 合併、拆分和重新排列 |
✕ No
僅轉換工具;沒有PDF頁面拆分/合併API的證據。
|
✓ Yes
支持合併/拆分並提供專用教程。單行操作。
|
| 編輯與操作 | ||
| 頁眉、頁腳與頁碼 |
✓ Yes
引擎提供頁眉/頁腳功能(常見的wkhtmltopdf特性通過CLI標誌)。
|
✓ Yes
專用的頁眉/頁腳API+頁面占位符支持。基於HTML,完全可定制化。
|
| 浮水印和印章 |
✕ No
不是PDF編輯器;浮水印通常通過在轉換前更改HTML模板實現。
|
✓ Yes
包含如何新增浮水印/印章,包括HTML/文字/圖像印章。完全不透明度、旋轉、位置控制。
|
| 閱讀與提取 | ||
| 從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+語言。
|
| 安全與合規 | ||
| 數位簽名 |
✕ No
wkhtmltopdf不實現PDF簽名。
|
✓ Yes
提供專用的簽名指南,並支持X509/PFX證書。
|
| PDF/A合規性 |
✕ No
未有文件記載支持PDF/A符合性流程。
|
✓ Yes
PDF/A轉換指引(例如,PDF/A-3B詳情)。企業合規準備就緒。
|
| 平台與部署 | ||
| 跨平台支持 |
⚙ Wrapper-Dependent
跨平台取決於為每個操作系統安裝正確的本機二進制文件。不是自包含的。
|
✓ Yes
特定於操作系統的NuGet包+macOS和Linux指南。支持Windows、Linux、macOS、ARM。
|
| 伺服器 / Docker 部署 |
⚙ Wrapper-Dependent
需要分發本機二進制文件;專案註明遺留引擎狀態。Docker設置複雜。
|
✓ Yes
提供官方的Azure功能和Docker指南;可選擇單獨的引擎容器。
|
| 首次生成PDF時間 |
~ Complex
需要管理本機二進制文件+包裹整合。不是簡單的NuGet安裝。
|
✓ Simple
快速入門展示安裝+最少程式碼用於HTML→PDF。單一
Install-Package IronPdf。 |
| 授權與支持 | ||
| 授權明確性 |
~ Complex
LGPLv3授權引入了Copyleft考量;不同的.NET包裹有不同的
授權。
|
✓ Clear
EULA和授權條款公開文件。永久商業授權。
|
| 商業支持 / SLA |
? Unknown
引擎是OSS(存檔);引用來源未描述的供應商SLA。僅社群
支持。
|
✓ 24/5 SLA
支持門戶+"24/5技術支持",提供保證的SLA—電子郵件、即時聊天、電話。
|
| 文件質量 |
~ Partial
引擎有豐富的CLI文件,但.NET包裹文件的質量差異很大。
|
✓ Extensive
完整的"入門/如何做/範例"文件,包含可複製粘貼的程式碼範本和影片教程。
|
即時遷移導到 IronPDF現代,積極維護的替代品—免費試用30天 →
選擇合適的PDF庫可以很困難,因為似乎有無數的選擇。 比較時,關鍵因素包括提供的功能與您的需求相比,支持和文件的水平,學習曲線,和授權費用。 關鍵是,還必須考量安全性影響。
本文比較了兩種具有不同設計哲學的PDF生成庫:wkhtmltopdf和IronPDF。 wkhtmltopdf以作為一個簡單的命令行HTML到PDF轉換器而創立它的聲譽,許多團隊依賴它執行這一目的。 但在C#中使用wkhtmltopdf可能會引入安全風險。 由於依賴於外部可執行文件(WebKit),漏洞或命令消毒不當可能會被利用,可能通過精製的HTML或參數誘發伺服器危害。
IronPDF是一個受管理的.NET庫,運行在您的應用程式的安全背景下,減少了來自外部進程的攻擊面。 下述部分比較了它們的功能、渲染能力和安全架構。
什麼是IronPDF和wkhtmltopdf?
IronPDF是一個C#庫用於在.NET框架中建立、操作和處理PDF。 其API涵蓋HTML轉PDF轉換、文字和圖像提取、表單處理,以及文件安全選項如加密和數位簽章—所有這些都可以通過單個NuGet包存取。 您可以通過NuGet包管理器控制台安裝IronPDF,並在數分鐘內運行程式庫。 欲了解更多資訊,請存取IronPDF的官方網站。
wkhtmltopdf是一個.NET Core P/Invoke包裹用於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: 運作於各種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
-
下載安裝程式:
- 前往wkhtmltopdf下載頁面。
- 在"Windows"部分,下載最新穩定版的安裝程式(例如,.exe文件)。
-
運行安裝程式:
- 雙擊下載的.exe文件。
- 遵循安裝提示進行。
- 在安裝期間,您可以選擇將wkhtmltopdf新增到您的系統PATH,以便從任何命令提示符都能存取到它。
- 驗證安裝:
- 打開命令提示符(cmd)。
- 輸入
wkhtmltopdf --version以檢查它是否安裝正確。 您應該會看到螢幕上顯示的版本號。
IronPDF和wkhtmltopdf功能比較
比較IronPDF和wkhtmltopdf時,了解兩個庫在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")
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)
wkhtmltopdf(使用命令行)
wkhtmltopdf myfile.html myfile.pdf
wkhtmltopdf myfile.html myfile.pdf
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")
wkhtmltopdf:
加密不在wkhtmltopdf的當前範圍内; 實現它需要一個單獨的第三方庫。
IronPDF提供直接的API用於加密PDF文件,包括密碼保護、只讀強制和詳細的權限控制。 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")
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")
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")
wkhtmltopdf:
水印不在wkhtmltopdf的原生功能集中。 相反,您需要在轉換前在源HTML中實施CSS樣式,或使用可以將水印應用於現有文件的單獨PDF庫。
IronPDF的水印工具使用HTML/CSS基於的方法,讓開發人員可控制不透明度、旋轉和位置,而無需離開.NET API。 wkhtmltopdf可以通過在轉換前將CSS樣式應用於源HTML來近似水印—這是一種適用於更簡單情況的解決方案,但遇到現有PDF不是來自您自己的HTML的情況時,其設計邊界就被達到了。
列印圖像和文字
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")
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")
wkhtmltopdf C#:
wkhtmltopdf不包含內建的列印工具。 通常的解決方法是嵌入所需的印章在轉換前的源HTML和CSS中。
IronPDF提供專用的ImageStamper類,用於在PDF頁面上印章文字和圖像—包含谷歌字體支持和精確的對齊控制。 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")
wkhtmltopdf C#:
wkhtmltopdf僅專注於HTML輸入,因此DOCX轉換需要額外的庫。
IronPDF通過其DocxToPdfRenderer類處理DOCX到PDF轉換—在上面的例子中為三行程式碼。 由於wkhtmltopdf的渲染管道以HTML輸入為基礎,因此DOCX不是支持的源格式。 需要此功能的團隊將會將單獨的轉換庫與wkhtmltopdf整合。
程式碼範例比較總結
要了解IronPDF功能的整個範圍,請探索IronPDF的操作指南,其中逐步介紹了每個功能,附有可複製粘貼程式碼範本。
定價和授權:IronPDF vs. wkhtmltopdf
IronPDF
IronPDF有不同等級和額外的功能購買授權。 開發人員還可以購買Iron Suite,用於以兩個的價格存取Iron Software的所有產品。 如果您尚未準備購買授權,IronPDF提供免費試用,讓您能夠在承諾購買授權前探索其所有功能。
-
永久授權:提供一系列的永久授權,根據您的團隊規模、專案需求和地點數量而定。 每一種授權型別都包含電子郵件支援。
-
簡潔授權:此授權支持一名開發者、一個地點和一個專案。
-
增強授權:支持三名開發者、三個地點和三個專案,這是從簡潔授權的下一步。 Plus授權除了基本的電子郵件支援外,還提供聊天支援和電話支援。
-
專業授權:適合較大團隊的授權,支持十名開發者、十個地點和十個專案。 它提供與前幾個等級相同的聯繫支援渠道,但還提供螢幕分享支援。
-
免版稅再分發: IronPDF的授權還提供免版稅再分發覆蓋,需額外支付費用。
-
不中斷的產品支持: IronPDF提供持續的產品更新、 安全功能升級及來自其工程團隊的支援。
- Iron Suite: You get access to all Iron Software products including IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint, and IronWebScraper.
wkhtmltopdf
wkhtmltopdf是免費使用的開源工具,根據LGPL許可證,允許您在私有應用中使用wkhtmltopdf,只要您不修改庫本身。
除了授權成本,總專案成本還包括開發者花在管理本機二進制依賴性上的小時時數,組裝單獨的庫用於加密、簽名和去敏,及應對Qt WebKit引擎限制的CSS3支持。 對於評估多年度專案生命週期中的成本的團隊,這些整合和維護的成本經常超過開源和商業授權之間的差異。
文件和支持:IronPDF vs. 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涵蓋了完整的PDF生命週期—轉換、加密、去敏、數位簽名、DOCX到PDF等—通過單個NuGet包加上積極維護的Chromium渲染引擎。對於接觸多個PDF操作的團隊,這一綜合方法減少了需要管理的依賴數量。
wkhtmltopdf通過其專注的、簡單直接的方法獲得了聲譽,並且因為不需要執照費用而成為一個容易進入的起點。 當需求超過轉換範圍進入編輯、安全或合規時,團隊通常會達到轉折點—這些功能在wkhtmltopdf的架構範圍之外。 加上專案的存檔狀態和老化的WebKit引擎,需求增長的團隊通常會在此時評估 積極維護的替代方案。 最終,正確的選擇取決於您的專案的當前和預計PDF需求。
您可以嘗試30天免費試用以了解其可用功能。
常見問題
我如何在 C# 中將 HTML 轉換為 PDF?
您可以使用IronPDF的RenderHtmlAsPdf方法來將HTML字串轉換為PDF。此外,您也可以使用RenderHtmlFileAsPdf將HTML檔轉換為PDF。
IronPDF和WkHtmlToPdf之間的主要差異是什麼?
IronPDF提供全面的功能集,包括文字提取、表單處理、加密和數位簽名,並具有跨平台相容性。WkHtmlToPdf是一個開源工具,專注於簡單的HTML轉PDF轉換。
如何在.NET專案中安裝IronPDF?
可以在Visual Studio中的NuGet套件管理器中執行以下命令來安裝IronPDF:Install-Package 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加密的原生支援。需要額外的第三方程式庫來實現加密功能。



