在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
當面對似乎無數可供選擇的 PDF 庫時,為您的需求選擇合適的 PDF 庫可能會很困難。 在比較不同的PDF庫時,有幾件事需要注意,例如: 這個庫提供哪些功能? 這些功能是否滿足你的需求,還是只能滿足部分需求? 該庫提供哪種級別的支援和文件? 學習曲線會很陡嗎? 那價格方面呢? 許可證價格在您的預算範圍內嗎?
今天,我們將會來看看兩個功能強大的 PDF 生成庫:IronPDF 和 WkHtmlToPdf。 每個庫都有其獨特的優勢,為不同的 PDF 生成和操作需求提供解決方案。
IronPDF 是一個強大的 C# 函式庫,可以在 .NET 框架中輕鬆地創建、操作和處理 PDF。 IronPDF 擁有用戶友好的 API 並提供廣泛的 PDF 相關功能支持,使開發人員更容易將 PDF 功能整合到 C# 應用程序中。 該函式庫以其全面的功能集而聞名,包括HTML轉PDF、文字和圖片提取、表單處理,以及文件安全選項,如加密和數位簽名。 您可以透過 NuGet 套件管理器主控台輕鬆安裝 IronPDF,並在短時間內使該函式庫運行。欲了解更多資訊,請造訪IronPDF 官方網站。
WkHtmlToPdf 是 WkHtmlToPdf 函式庫的 .NET Core P/Invoke 包裝器,一個使用 Qt Webkit 渲染引擎將 HTML 頁面轉換為 PDF 的熱門工具。這個開源函式庫是從 DinkToPdf 派生而來,提供基本的 HTML 到 PDF 轉換功能,並專注於簡單性和效率。 安裝非常簡單,下載並運行 WkHtmlToPdf 可執行文件後,您只需確保已將其添加到系統的路徑環境變數中。 雖然缺乏 IronPDF 提供的高級功能,WkHtmlToPdf 是一個輕量且易於使用的庫。
IronPDF 因其廣泛的跨平台相容性而脫穎而出。 它支持 .NET 框架內的多種環境,確保在不同平台上流暢運行。
.NET 版本:
完全用 C# 編寫並支援 VB.NET 和 F#
.NET Core (8, 7, 6, 5, 和 3.1+)
作業系統和處理器:支援多種不同的作業系統和處理器,包括 Windows、Mac、Linux、x64、x86、ARM
如需有關 IronPDF 相容性的更多詳細資訊,請造訪IronPDF 相容性。
要使用IronPDF,請通過 Visual Studio 中的 NuGet 套件管理器安裝:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
下載安裝程式:
前往 wkhtmltopdf 下載頁面。
運行安裝程式:
雙擊下載的 .exe 文件。
按照安裝提示進行操作。
驗證安裝:
開啟命令提示字元 (cmd)。
在比較IronPDF和WkHtmlToPdf時,重要的是查看兩者在PDF生成和操作方面提供的功能。
PDF 編輯功能:使用 IronPDF,您可以處理現有的 PDF 文件、編輯它們,並輕鬆閱讀 PDF 文件。 IronPDF 提供編輯功能,例如添加頁首和頁尾、將文字和圖片蓋印到 PDF 頁面上、在 PDF 中添加自訂浮水印、處理 PDF 表單,以及拆分或合併 PDF 文件。
如需了解有關IronPDF功能的更多詳細信息,請造訪IronPDF功能。
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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'wkhtmltopdf myfile.html myfile.pdf
使用 IronPDF,您只需幾行程式碼就能從 HTML 內容創建像素完美的PDF 檔案! 其對現代網頁標準的支持確保您生成的 PDF 文件盡可能保留原始來源的品質。 WkHtmlToPdf 是圍繞 HTML 到 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 提供了一種簡單易行的方法來加密 PDF 文件,同時讓您完全掌控整個過程。 由於 WkHtmlToPdf 比較專注於 HTML 到 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修訂功能。
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 C# 不提供對簽署 PDF 的原生支持。
當您使用IronPDF時,您可以輕鬆地數位簽署您的PDF,這要歸功於它易於使用的數位簽名功能。 這個強大的簽署工具提供您所需的工具,以程式化地開始對 PDF 文件進行數位簽署,如果您經常需要簽署 PDF 文件,這將節省您的時間。 WkHtmlToPdf 本身無法處理 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:
沒有直接明確的方法來做到這一點。 相反,您需要實現高級 CSS 樣式以應用浮水印,或者使用可以處理浮水印的單獨 PDF 庫。
IronPDF為用戶提供了一個強大且簡潔的浮水印工具。 IronPDF 的浮水印工具與 HTML/CSS 方法相似,使用起來簡單,讓您輕鬆地將自訂浮水印應用到 PDF 文件上。 如果您單獨使用 WkHtmlToPdf,僅能通過使用 CSS 進行浮水印。
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#:
由於沒有專門為此設計的內建選項,使用 HTML 和 CSS 來加上文字和圖片水印需要採用間接的方法。
借助IronPDF,由於其強大且易於使用的圖像和文字標記工具,在PDF文件上標記文字和圖像從未如此簡單。 WkHtmlToPdf 沒有內建的加蓋工具,但您仍然可以使用 HTML 和 CSS 應用加蓋內容來達到類似的效果。
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#:
需要額外的庫來處理 DOCX 到 PDF 的轉換。
IronPDF 通過其強大的 DOCX to PDF 工具簡化了DOCX 轉換為 PDF,僅需幾行代碼,最終提高了您的項目效率。 WkHtmlToPdf 不提供任何內建的 DOCX 轉換為 PDF 的支援,您需要尋找其他可以處理此功能的 PDF 庫。
要了解 IronPDF 提供的豐富功能,並親眼見證其運作,請查看 IronPDF 使用指南,該指南深入探討每個功能,探索其如何運作,並賦予您成為 PDF 專家的技能。
IronPDF 有不同級別和額外功能可供購買許可證。 開發人員還可以購買 Iron Suite,該套件讓您以兩種產品的價格即可獲取Iron Software所有產品的使用權。 如果您還沒有準備好購買授權,IronPDF 提供免費試用,以便您在決定購買授權之前探索其提供的所有功能。
Iron Suite:只需 $1,498,即可使用所有 Iron Software 產品,包括 IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint 和 IronWebScraper。
WkHtmlToPdf 是一個免費使用的開源工具,根據 LGPL 授權許可證提供,以使您在不修改庫本身的情況下可以在專有應用程式中使用 wkhtmltopdf。
IronPDF 在提供廣泛的文檔和支援方面表現出色:
PDF API 參考: 提供 API 參考資料,讓您可以充分利用我們工具的所有功能。
如需更多資訊,請查閱IronPDF的完整文件,並造訪IronSoftware YouTube頻道。
總之,IronPDF 和 WkHtmlToPdf 都在 C# 中提供了獨特的 PDF 生成和操作優勢。 IronPDF以其全面的功能集脫穎而出,包括高級PDF功能,如加密、編輯、數位簽署以及無縫的DOCX到PDF轉換,這使它成為尋求多功能且易於使用的程式庫的開發人員的一個強大解決方案。 IronPDF擁有豐富的功能集和詳盡的文檔,是一個強大的工具,如果你經常處理PDF文件,應該將其納入你的開發工具包中。
另一方面,WkHtmlToPdf 在 HTML 到 PDF 轉換方面以其簡單和高效而著稱,特別適合尋求輕量級、開源解決方案且不需要高級 PDF 操作功能的用戶。 儘管缺乏IronPDF的一些更高級功能,WkHtmlToPdf的易用性、跨平台支持和零成本使其成為基本PDF生成任務的一個吸引人的選擇。 最終,在 IronPDF 和 WkHtmlToPdf 之間的選擇將取決於您的專案的具體需求、對進階 PDF 功能的需求,以及您的預算考量。
您可以嘗試30天免費試用來查看他們的可用功能。