在Windows中運行的Wkhtmltopdf與IronPDF之間的比較
IronPDF與 wkhtmltopdf:功能、渲染和架構對比
IronPDF 和 wkhtmltopdf - Compare to Other Components 都是可用于将 HTML 頁面或完整網站(包括图像)轉换為 PDF 格式的工具。 然而,這兩種工具在功能、效能和易用性上有幾項差異。
什麼是 wkhtmltopdf?
wkhtmltopdf 是一個開源的命令列工具,可以將HTML 頁面或網站轉換為 PDF 格式。 它適用於 Windows、Linux 和 macOS X 作業系統,並可搭配 C# 和 Java 等多種程式語言使用。
How to Installwkhtmltopdfon Java and C#
以下是在 Windows 伺服器上以 C# 和 Java 安裝wkhtmltopdf的步驟:
Installingwkhtmltopdffor C#
1.從官方網站 URL 下載 Windows 適用的最新版本:wkhtmltopdf 下載 2.雙擊下載的安裝程式,按照安裝精靈的指示安裝 wkhtmltopdf。 3.安裝完成後,請修改路徑,將wkhtmltopdf可執行檔加入系統的 PATH 環境變數。 可透過命令提示符使用下列命令完成:
set PATH=%PATH%;C:\Program Files\wkhtmltopdf\bin
set PATH=%PATH%;C:\Program Files\wkhtmltopdf\bin
安裝wkhtmltopdffor Java。
1.從官方網站下載最新版的wkhtmltopdffor Windows:wkhtmltopdf 下載。 2.將下載的存檔內容解壓縮到您系統上的目標資料夾。
在 C# 和 Java 中,wkhtmltopdf 的安裝和使用都涉及透過命令提示字元執行wkhtmltopdf命令,或使用 ProcessBuilder 類別以程式設計方式執行命令。 請務必確保將wkhtmltopdf執行檔新增至系統的 PATH 環境變數中,並提供產生所需 PDF 輸出檔案所需的必要開關和選項。對於希望從wkhtmltopdf遷移到IronPDF的團隊,逐步遷移指南詳細介紹了整個過程。
什麼是 IronPDF,以及如何為 C# 和 Java 安裝它。
探索IronPDF功能和安裝是一個允許開發人員使用 C# 和 Java 來建立、處理和轉換 PDF 的函式庫。 它提供了廣泛的功能,包括 HTML 到 PDF 的轉換、從零開始生成 PDF 以及 PDF 操作。
! IronPDF
To installIronPDFfor C#
1.使用 Package Manager Console 或透過 Visual Studio UI 安裝IronPDFNuGet 套件。 2.在您的程式碼中,新增下列 using 語句以匯入IronPDF命名空間:
using IronPdf;
using IronPdf;
Imports IronPdf
3.要從 HTML 字串產生 PDF ,請使用下列程式碼:
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("IronFile.html").SaveAs("IronPDF-file.pdf");
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("IronFile.html").SaveAs("IronPDF-file.pdf");
Dim Renderer As New ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("IronFile.html").SaveAs("IronPDF-file.pdf")
4.若要從頭開始建立 PDF,請使用下列程式碼:
using IronPdf;
var Renderer = new ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or a Stream
pdf.SaveAs("url.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or a Stream
pdf.SaveAs("url.pdf");
Imports IronPdf
Dim Renderer As New ChromePdfRenderer()
' Create a PDF from a URL or local file path
Using pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20")
' Export to a file or a Stream
pdf.SaveAs("url.pdf")
End Using
! 輸出
安裝IronPDFfor Java。
1.從IronPDF網站下載 IronPDF Java Library。 2.將IronPDFJAR 檔案加入專案的 classpath。 3.在您的程式碼中,匯入IronPDF套件:
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.*;
4.安裝完成後,使用下列程式碼從 HTML 內容產生 PDF:
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class PdfExample {
public static void main(String[] args) throws IOException {
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
// Set a log path
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Render the HTML as a PDF, stored in myPdf as type PdfDocument
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf(" ~Hello World~ Made with IronPDF!");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class PdfExample {
public static void main(String[] args) throws IOException {
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
// Set a log path
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Render the HTML as a PDF, stored in myPdf as type PdfDocument
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf(" ~Hello World~ Made with IronPDF!");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
請注意,IronPDF 使用專屬的 HTML 至 PDF 轉換引擎,不依賴wkhtmltopdf等外部工具。 開發人員還可以透過邊距、頁首、DPI 和其他渲染選項來微調輸出品質。
下表簡要總結了這兩個庫的主要差異。
| 特點 | IronPDF | wkhtmltopdf |
|---|---|---|
| 渲染引擎 | 鉻(閃爍) | Qt WebKit(舊版) |
| HTML5/CSS3 支持 | 全文 | 部分的 |
| 整合模型 | NuGet 套件/JAR | 外部 CLI 進程 |
| PDF編輯與合併 | 包括 | 不包含 |
| 加密與安全 | 包括 | 不包含 |
| Flexbox / CSS Grid | 支援 | 不支援 |
| 許可證 | 商業版(免費試用) | LGPLv3(免費) |
| 官方支持 | 專業的工程團隊 | 社群驅動 |
對於正在評估IronPDF作為 Windows 上wkhtmltopdf替代品的團隊,免費 30 天試用版。
How to useIronPDFandwkhtmltopdfto manipulate PDF files in C#
IronPDF 和wkhtmltopdf是兩個可用於在 C# 中處理 PDF 檔案的函式庫。 在本節中,我們將探討如何使用這兩個函式庫來處理 PDF 檔案。
使用IronPDF處理 PDF 檔案
IronPDF 是一個 C# 函式庫,可用於建立、處理和 渲染 PDF 文件。 它提供了一個易於使用的 API,允許開發人員對 PDF 文件執行各種操作,例如添加文字、圖像和表格,以及合併、分割和轉換 PDF 文件。 以下是如何使用IronPDF在 PDF 檔案中加入文字的範例:
using IronPdf;
var Renderer = new ChromePdfRenderer();
// Render a local HTML file as PDF
using var PDF = Renderer.RenderHtmlFileAsPdf("Project/MyHtmlDocument.html");
// Save the PDF to disk
PDF.SaveAs("Project/MyOutput.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
// Render a local HTML file as PDF
using var PDF = Renderer.RenderHtmlFileAsPdf("Project/MyHtmlDocument.html");
// Save the PDF to disk
PDF.SaveAs("Project/MyOutput.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
' Render a local HTML file as PDF
Private PDF = Renderer.RenderHtmlFileAsPdf("Project/MyHtmlDocument.html")
' Save the PDF to disk
PDF.SaveAs("Project/MyOutput.pdf")
使用wkhtmltopdf處理 PDF 檔案
wkhtmltopdf 是一個命令列工具,可以將 HTML 頁面轉換為 PDF 檔案。 它使用 Qt WebKit 渲染引擎將 HTML 渲染成 PDF 格式。 請注意,Qt WebKit 已停止積極維護,因此其對現代 HTML5、CSS3 和 JavaScript 功能的支援已跟不上基於 Chromium 的引擎。
using System.Text;
using System.Diagnostics;
class PdfGenerator
{
static void Main(string[] args)
{
// Function to convert HTML to PDF using wkhtmltopdf
ConvertHtmlToPdf("URL", "Sample.pdf");
Console.WriteLine("PDF successfully created!");
Console.ReadKey();
}
// Function to configure and start thewkhtmltopdfprocess
public static void ConvertHtmlToPdf(string url, string filename)
{
// Construct the command line parameters
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", url, filename);
// Create and configure the process
using (Process process = new Process())
{
// Specify the path towkhtmltopdfexecutable
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
// Configure process settings
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
// Start the process and wait for it to exit
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
Console.WriteLine("Process terminated as it exceeded the time limit.");
}
}
}
}
using System.Text;
using System.Diagnostics;
class PdfGenerator
{
static void Main(string[] args)
{
// Function to convert HTML to PDF using wkhtmltopdf
ConvertHtmlToPdf("URL", "Sample.pdf");
Console.WriteLine("PDF successfully created!");
Console.ReadKey();
}
// Function to configure and start thewkhtmltopdfprocess
public static void ConvertHtmlToPdf(string url, string filename)
{
// Construct the command line parameters
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", url, filename);
// Create and configure the process
using (Process process = new Process())
{
// Specify the path towkhtmltopdfexecutable
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
// Configure process settings
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
// Start the process and wait for it to exit
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
Console.WriteLine("Process terminated as it exceeded the time limit.");
}
}
}
}
Imports System.Text
Imports System.Diagnostics
Class PdfGenerator
Shared Sub Main(args As String())
' Function to convert HTML to PDF using wkhtmltopdf
ConvertHtmlToPdf("URL", "Sample.pdf")
Console.WriteLine("PDF successfully created!")
Console.ReadKey()
End Sub
' Function to configure and start the wkhtmltopdf process
Public Shared Sub ConvertHtmlToPdf(url As String, filename As String)
' Construct the command line parameters
Dim paramsBuilder As New StringBuilder()
paramsBuilder.AppendFormat("""{0}"" ""{1}""", url, filename)
' Create and configure the process
Using process As New Process()
' Specify the path to wkhtmltopdf executable
process.StartInfo.FileName = "C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
process.StartInfo.Arguments = paramsBuilder.ToString()
' Configure process settings
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardError = True
' Start the process and wait for it to exit
process.Start()
If Not process.WaitForExit(60000) Then
process.Kill()
Console.WriteLine("Process terminated as it exceeded the time limit.")
End If
End Using
End Sub
End Class
總而言之,IronPDF 和wkhtmltopdf是兩款功能強大的工具,可用於在 C# 中處理 PDF 檔案。IronPDF提供了一個易於使用的 API,用於建立、操作和渲染 PDF 檔案,而wkhtmltopdf則是一個命令列工具,可用於將 HTML 頁面轉換成 PDF 檔案。 這兩種工具各有優缺點,開發人員應選擇最適合自己需求的一種。
Manipulating a PDF file withIronPDFandwkhtmltopdfin Java using the Qt WebKit rendering engine.
操作 PDF 檔案是文件管理的重要部分,而開發人員需要可靠的工具來協助他們達成這個目標。 Java 開發人員可以使用各種用於 PDF 操作的函式庫和工具,其中IronPDFfor Java 和wkhtmltopdf是很受歡迎的選項。 在本比較中,我們將探討 Java 開發人員如何使用這些工具來操作 PDF 檔案。
IronPDF 是一個 C# PDF 函式庫,提供簡單快速的 PDF 操作功能。 它也有 Java 版本,讓 Java 開發人員也能享有相同的功能。IronPDF提供處理 PDF 的 API,包括建立、編輯和渲染 PDF 文件。 它還提供對 PDF 表單、註釋和PDF 安全功能(如加密和密碼)的支援。
要開始在 Java 中使用 IronPDF,開發人員需要從官方網站下載IronPDFJava 函式庫,並將其匯入其 Java 專案中。
! IronPDF
另一方面,wkhtmltopdf 是一個命令列工具,可使用傳統的 Qt WebKit 渲染引擎將 HTML 內容轉換為可攜式文件格式。它是一個開放原始碼工具,適用於 Windows、Linux 和 macOS。 雖然wkhtmltopdf提供了各種選項和開關來自訂 PDF 輸出檔案(例如設定邊距、頁面大小和方向),但其 Qt WebKit 引擎已不再積極維護,也沒有更新以支援現代 Web 標準。
要在 Java 中使用 wkhtmltopdf,開發人員可以使用 Java 中的 Process 類別來執行wkhtmltopdf工具。
IronPDF 和wkhtmltopdf都提供了可靠的 Java PDF 生成功能。IronPDF非常適合喜歡使用原生 API 的開發人員,而wkhtmltopdf則更適合習慣使用命令列工具的開發人員。IronPDF涵蓋的範圍更廣——包括編輯、加密和表單處理——而wkhtmltopdf安裝佔用空間更小,資源開銷也最小,適用於簡單的轉換。
wkhtmltopdf和IronPDF有什麼不同?
特點
-IronPDF是一款功能齊全的 HTML 至 PDF 轉換器,包含對 CSS、JavaScript 和 HTML5 的支援。它還可用於為 PDF 文件新增頁眉、頁腳和水印,以及將多個 PDF 文件合併為單一文件。 此外,它還包含 OCR 功能,可將掃描的文件轉換為可搜尋的 PDF。 wkhtmltopdf 專注於透過命令列將 HTML 轉換為 PDF。它支援 CSS 和 JavaScript,但目前不支援 HTML5。 諸如添加頁首或頁尾或合併 PDF 文件之類的功能不包含在內——需要這些功能的團隊通常會添加其他工具或評估IronPDF等庫。
效能
-IronPDF以 .NET 函式庫(或透過 IKVM 作為 Java 函式庫)在進程內運行,消除了產生和與外部執行檔通訊的開銷。 它採用目前穩定的 Chromium 引擎,可以在一次渲染過程中處理大型複雜的 HTML 文件。 -wkhtmltopdf每次轉換都依賴外部進程,這會引入進程啟動和 I/O 開銷——在批量處理大型 HTML 檔案或快速連續運行轉換時尤其明顯。
易用性
-IronPDFfor Java 的設計易於使用,並包含一個簡單的 API,可直接整合到 C# 或 Java 應用程式中。 此外,還包括廣泛的說明文件和支援資源,以協助開發人員快速上手並運作。 -wkhtmltopdf要求開發人員使用命令列介面,這可能涉及更多的設定和腳本編寫開銷。 其文件和支援資源由社群驅動,而非商業支持,因此團隊可能需要依賴 GitHub issues 和 Stack Overflow 來獲取指導。
平台支援
-IronPDFfor .NET 是一個 .NET 函式庫,可以在任何基於 .NET 的平台上使用,包括 Windows、Linux 和 macOS。 本手冊也可搭配使用 IKVM.NET runtime 的 Java 使用。 -wkhtmltopdf是一個命令列工具,適用於 Windows、Linux 和 macOS。 它也可以用於多種程式語言,包括 C# 和 Java。
成本
-IronPDF是商業產品,在生產環境中使用需要付費授權。 不過,它也提供免費的試用版,供開發人員測試和評估工具。 -wkhtmltopdf是一款開放原始碼工具,可免費用於商業或非商業用途。
總而言之,IronPDF 提供了更廣泛的功能集和可直接整合到 C# 或 Java 應用程式中的原生 API。 這是一個商業產品,需要付費許可才能用於生產用途。 相較之下,wkhtmltopdf 是一個免費的開源命令列工具,相容於多種程式語言——雖然其專注於 HTML 到 PDF 的轉換,但對於需要進行文件操作或高級渲染的團隊來說,這些功能通常超出了其設計範圍。
定價與授權
IronPDF 和wkhtmltopdf是用來從 HTML 內容產生 PDF 文件的兩種常用工具。 雖然這兩種工具都提供類似的功能,但在授權和定價上卻有差異。
IronPDF 是商業軟體函式庫,商業使用需取得授權。 它提供一系列授權選項,包括按開發人員、按伺服器及按部署授權。IronPDF為其授權使用者提供技術支援與軟體更新。IronPDF的定價視所選的授權選項而定。
另一方面,wkhtmltopdf 是免費提供的開放原始碼工具。 它採用 LGPLv3 授權,允許使用、修改和散佈軟體。 但不提供任何技術支援或軟體更新。 使用者社群透過 GitHub issues 和 Stack Overflow 等各種管道提供支援和更新。
在定價方面,IronPDF 較wkhtmltopdf昂貴。IronPDF的定價為每個開發者授權 399 美元起,而wkhtmltopdf則免費使用。
除了授權費用之外,專案總成本還包括開發人員花費在管理外部 CLI 進程、編寫 Qt WebKit 有限的 CSS3 支援變通方案以及處理缺少內建 PDF 編輯或基於密碼的 PDF 加密等方面的時間。 對於評估多年專案生命週期成本的團隊來說,這些整合和維護時間往往會超過開源授權和商業授權之間的差異。
值得注意的是,IronPDF 和wkhtmltopdf使用了不同的渲染引擎:IronPDF 使用的是現代的 Chromium 渲染引擎(Blink),完全支援 HTML5、CSS3 和 JavaScript,而wkhtmltopdf使用的是 Qt WebKit 渲染引擎,該引擎尚未更新以匹配當前的 Web 標準。IronPDF提供全面的 .NET API,而wkhtmltopdf則提供命令列工具。 兩者都支援一系列的輸入格式,包括 HTML、URL 和本機檔案。
。
總而言之,IronPDF 和wkhtmltopdf提供類似的功能,可從 HTML 內容產生 PDF 文件。 主要差異在於其授權與定價模式。IronPDF是商業軟體函式庫,商業使用需取得授權,而wkhtmltopdf則是免費的開放原始碼工具。 兩者在建立 PDF 應用程式時都非常有用。
支援現代 CSS 架構
IronPDF 與wkhtmltopdf之間的重要差異在於他們對現代 CSS 框架(如 Bootstrap、Tailwind CSS 和 Foundation)的支援。
IronPDF:完整的 Bootstrap 支援
IronPDF 的 Chromium 渲染引擎提供了對現代 CSS 框架的完整支援:
- Bootstrap 5:全面支援 flexbox 和 CSS Grid,實現響應式佈局
- 複雜版面配置:能精準呈現 Bootstrap 首頁及 Bootstrap 範本的像素級排版
- 現代功能:CSS3 動畫、變換、過渡效果及媒體查詢
- CSS 框架:Bootstrap、Tailwind CSS、Foundation、Bulma 皆能無縫整合
程式碼範例:渲染 Bootstrap 內容
using IronPdf;
// Render a Bootstrap 5 layout
var renderer = new ChromePdfRenderer();
// Example: Bootstrap navigation and card layout
string bootstrapHtml = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<nav class='navbar navbar-expand-lg navbar-dark bg-primary'>
<div class='container'>
<a class='navbar-brand' href='#'>My Company</a>
</div>
</nav>
<div class='container mt-4'>
<div class='row'>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 1</h5>
<p class='card-text'>Modern flexbox-based layout.</p>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 2</h5>
<p class='card-text'>Responsive grid system.</p>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 3</h5>
<p class='card-text'>CSS3 animations supported.</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapHtml);
pdf.SaveAs("bootstrap-layout.pdf");
using IronPdf;
// Render a Bootstrap 5 layout
var renderer = new ChromePdfRenderer();
// Example: Bootstrap navigation and card layout
string bootstrapHtml = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<nav class='navbar navbar-expand-lg navbar-dark bg-primary'>
<div class='container'>
<a class='navbar-brand' href='#'>My Company</a>
</div>
</nav>
<div class='container mt-4'>
<div class='row'>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 1</h5>
<p class='card-text'>Modern flexbox-based layout.</p>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 2</h5>
<p class='card-text'>Responsive grid system.</p>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 3</h5>
<p class='card-text'>CSS3 animations supported.</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapHtml);
pdf.SaveAs("bootstrap-layout.pdf");
Imports IronPdf
' Render a Bootstrap 5 layout
Dim renderer As New ChromePdfRenderer()
' Example: Bootstrap navigation and card layout
Dim bootstrapHtml As String = "
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<nav class='navbar navbar-expand-lg navbar-dark bg-primary'>
<div class='container'>
<a class='navbar-brand' href='#'>My Company</a>
</div>
</nav>
<div class='container mt-4'>
<div class='row'>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 1</h5>
<p class='card-text'>Modern flexbox-based layout.</p>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 2</h5>
<p class='card-text'>Responsive grid system.</p>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title'>Feature 3</h5>
<p class='card-text'>CSS3 animations supported.</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapHtml)
pdf.SaveAs("bootstrap-layout.pdf")
上述程式碼能在IronPDF上完美呈現,並保留所有 Bootstrap 造型、flexbox 佈局和回應式網格系統。
wkhtmltopdf:更窄的 CSS 框架支持
wkhtmltopdf 的 Qt WebKit 引擎並非為現代框架所依賴的 CSS 規範而設計:
- Flexbox 相容性問題: Bootstrap 4+ 嚴重依賴 Flexbox,而 Qt WebKit 引擎並不完全支援 Flexbox。
-不支援 CSS Grid:現代網格佈局超出了 Qt WebKit 的渲染能力範圍。
-引擎版本: Qt WebKit 上次更新是在 2016 年,因此現代 CSS3 特性(例如
clamp()、aspect-ratio和容器查詢)不在其支援範圍內。 -需要採取的變通方法:開發者必須使用舊版的 Bootstrap(Bootstrap 3 或更早版本)或實作基於表格的回退方案。
如需瞭解 CSS 框架支援以及解決 flexbox/Bootstrap 渲染問題的更多詳細資訊,請參閱 Bootstrap & Flexbox CSS 指南。
您應該選擇哪一個程式庫?
IronPDF 是一個為 .NET 語言建構的綜合 PDF 操作庫,旨在為開發人員提供用於建立、編輯和操作 PDF 檔案的簡單 API。 它注重易用性,並採用現代化的 Chromium 渲染管線,對於需要在 C# 或 Java 中獲得完整 PDF 支援的團隊來說,它是一個不錯的選擇。
wkhtmltopdf 是一個開源的命令列工具,它使用 Qt WebKit 渲染引擎將 HTML 轉換為 PDF 檔案。它可在 Windows、Linux 和 macOS 上運行,並且能夠可靠地處理簡單的 HTML 到 PDF 轉換。 也就是說,Qt WebKit 已停止積極維護,因此其對現代 Web 標準的支援未能跟上瀏覽器引擎的步伐。wkhtmltopdf的功能主要集中在轉換而非更廣泛的文件操作上,而且設定它確實需要對命令列工具和流程管理有一定的了解。
兩者之間一個顯著的差異在於支持模式。IronPDF的商業許可包括專門的技術支援和定期更新,這可以降低團隊在生產應用程式中交付 PDF 功能的風險。
從技術能力來看,IronPDF 提供的功能集比wkhtmltopdf更全面。 它包含頁面調整大小、圖像壓縮和文件加密等一流操作——這些功能超出了wkhtmltopdf的設計範圍。IronPDF也支援更廣泛的圖像格式,並公開了原生 .NET API,與呼叫外部進程相比,這降低了整合開銷。
最後,值得一提的是,IronPDF 是 Iron Software 套裝產品的一部分,其中包括其他有用的 .NET 開發函式庫。 開發人員可以兩個授權的價格購買全部五個 Iron Software 產品,對於那些希望獲得最大價值的人來說,這是一個很有吸引力的套件。
若要了解IronPDF如何處理您自己的 HTML 到 PDF 工作流程,請下載免費的 30 天試用版並針對您的生產範本進行測試。
常見問題解答
怎樣在 C# 中將 HTML 轉換為 PDF?
您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。
使用PDF庫而非命令行工具的優勢是什麼?
使用像IronPDF這樣的PDF庫提供了HTML5、CSS、JavaScript支援和其他功能,如標題、頁脚和合併PDF。此外,它還提供易於使用的API和廣泛的文檔,這與像wkhtmltopdf這樣的命令行工具不同。
如何優化C#中HTML轉PDF的性能?
IronPDF進行了性能優化,可以有效處理大型HTML文件。它在應用程式內部處理HTML到PDF的轉換,減少了對可能降低性能的外部進程的依賴。
可以使用C#中的庫操作現有的PDF嗎?
是的,IronPDF允許您操作現有的PDF,提供如添加水印、合併文檔和使用OCR掃描文檔等功能,這些在基本命令行工具如wkhtmltopdf中不可用。
商業PDF庫有哪些支援選項?
IronPDF在商業授權中提供高級支援和定期更新。這包括技術支援和對最新功能的訪問,這與像wkhtmltopdf這樣的開源替代品不同,不提供官方支援。
IronPDF和開源工具之間的授權有什麼不同?
IronPDF需要付費授權以用於生產,提供技術支援和更新。而wkhtmltopdf是開源和免費的,根據LGPLv3許可使用,但缺乏官方支援和經常更新。
是否有PDF庫的Java版本可供使用?
是的,IronPDF有Java版本,使Java開發者能夠利用其廣泛的功能創建、編輯和呈現PDF文檔,使其成為多語言開發的多功能選擇。
除了HTML到PDF轉換外,功能齊全的PDF庫還提供哪些功能?
IronPDF提供超越HTML到PDF轉換的功能,包括從頭生成PDF、文檔操作,如添加水印、合併PDF和整合OCR技術處理掃描文檔。

