產品比較

PDFsharp 與 iTextSharp (C# PDF 函式庫比較)

Chipego
奇佩戈·卡林达
2025年4月24日
分享:

無論您是在構建文檔繁重的企業解決方案、在 SaaS 應用程式中生成發票,還是從 .NET 儀表板導出報告,總會出現一個問題:

「我應該使用哪個 C# PDF 庫?」

在 .NET 生態系統中,有三個程式庫脫穎而出:PDFsharpiTextSharpIronPDF。 每個都有其優勢、特點和最佳使用案例。 但對於在 .NET 6+、.NET Core 甚至是傳統 .NET Framework 中使用 PDF 文件的現代開發者來說,究竟哪一個才是真正的最佳選擇?

本綜合指南深入探討每個庫,比較功能、安裝、可用性和輸出品質。 我們將逐步講解實際代碼範例、各個庫的優缺點,並根據實際開發需求提供實用建議。

讓我們開始吧。

PDFsharp 概覽

Pdfsharp Vs Itextsharp Comparison 1 related to PDFsharp 概覽

什麼是PDFsharp?

PDFsharp 是一個開源庫,允許開發人員使用 C# 動態創建和處理 PDF 文檔。 它支持從頭開始創建 PDF,以及修改現有的 PDF 文件。 其簡潔的面向對象API非常適合尋求輕量且易於整合解決方案的開發者。

儘管該項目由社群驅動,但它擁有忠實的用戶群,並且在不需要進階渲染或動態HTML內容的簡單PDF任務中仍然是首選。

安裝 PDFsharp

透過NuGet安裝非常簡單:

Install-Package PDFsharp
Install-Package PDFsharp
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package PDFsharp
$vbLabelText   $csharpLabel

它也與 PdfSharpCore 用於 .NET Core 環境相容。

範例程式碼:創建簡單的 PDF

using PdfSharp.Pdf;
using PdfSharp.Drawing;

// Create a new PDF document
var document = new PdfSharp.Pdf.PdfDocument();
document.Info.Title = "Created with PDFsharp";

// Create an empty page
PdfPage page = document.AddPage();

// Get an XGraphics object for drawing
XGraphics gfx = XGraphics.FromPdfPage(page);

// Create a font
XFont font = new XFont("Verdana", 20, XFontStyleEx.Bold);

// Draw the text
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

// Save the document
document.Save("HelloWorld.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;

// Create a new PDF document
var document = new PdfSharp.Pdf.PdfDocument();
document.Info.Title = "Created with PDFsharp";

// Create an empty page
PdfPage page = document.AddPage();

// Get an XGraphics object for drawing
XGraphics gfx = XGraphics.FromPdfPage(page);

// Create a font
XFont font = new XFont("Verdana", 20, XFontStyleEx.Bold);

// Draw the text
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

// Save the document
document.Save("HelloWorld.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

' Create a new PDF document
Private document = New PdfSharp.Pdf.PdfDocument()
document.Info.Title = "Created with PDFsharp"

' Create an empty page
Dim page As PdfPage = document.AddPage()

' Get an XGraphics object for drawing
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)

' Create a font
Dim font As New XFont("Verdana", 20, XFontStyleEx.Bold)

' Draw the text
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)

' Save the document
document.Save("HelloWorld.pdf")
$vbLabelText   $csharpLabel

輸出

PDFsharp PDF

📝 *注意:PDFsharp 不直接支持 HTML 渲染或 CSS 解析,因此最適合用於基於繪圖的文件生成。 要進行 HTML 到 PDF 的渲染,您需要 HtmlRenderer for PDFsharp。

PDFsharp 的優缺點

優點:

  • 免費且開源的 PDF 庫 (MIT 授權)
  • 非常適合低層次繪圖和簡單的文字型 PDF 文件
  • 輕量且易於安裝

    缺點:

  • 沒有本地的 HTML 轉 PDF 支援
  • 渲染能力有限
  • 未針對進階使用案例進行積極維護

iTextSharp 詳細分析

Pdfsharp Vs Itextsharp Comparison 3 related to iTextSharp 詳細分析

什麼是iTextSharp?

iTextSharp 是 iText 的 .NET 移植版,一個基於 Java 的強大 PDF 庫。 它提供了先進的功能,包括數位簽名、表單欄位、條碼等。 iTextSharp 可高度自定義,最適合有法律或法規文件需求的企業。

然而,它有一個限制——授權。 iTextSharp 採用 AGPL 授權,這意味著除非您購買商業授權,否則您必須將您的專案開源。

安裝iTextSharp

Install-Package itext
Install-Package itext
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package itext
$vbLabelText   $csharpLabel

較新的版本使用 iText Core 命名空間。 在整合之前,請務必查看授權條款。

範例代碼:基本 PDF 生成

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

PdfWriter writer = new PdfWriter("iTextHello.pdf");
var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
Document document = new Document(pdf);

document.Add(new Paragraph("Hello, iTextSharp!"));

document.Close();
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

PdfWriter writer = new PdfWriter("iTextHello.pdf");
var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
Document document = new Document(pdf);

document.Add(new Paragraph("Hello, iTextSharp!"));

document.Close();
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element

Private writer As New PdfWriter("iTextHello.pdf")
Private pdf = New iText.Kernel.Pdf.PdfDocument(writer)
Private document As New Document(pdf)

document.Add(New Paragraph("Hello, iTextSharp!"))

document.Close()
$vbLabelText   $csharpLabel

輸出

iText PDF 輸出

📌 *提示:iTextSharp 的 iText 9 版本是模組化的。 要進行 HTML 轉換或條碼生成,安裝其他 NuGet 套件,例如收費的附加組件 pdfHTML

iTextSharp 的優勢與劣勢

優勢:

  • 強大且適用於企業級
  • 支持 PDF/A、加密、表單填寫和數位簽章
  • 模組化架構與插件

    弱點:

  • AGPL 授權或昂貴的商業授權
  • 學習曲線陡峭
  • 比起競爭者的冗長語法

IronPDF:C# 的綜合選擇

Pdfsharp Vs Itextsharp Comparison 5 related to IronPDF:C# 的綜合選擇

為何 IronPDF 脫穎而出

IronPDF 是一個商用級的 .NET 函式庫,著重於簡易性、渲染準確性及豐富功能。 如果您想將支援完整 CSS、JavaScript 和網頁字體的 HTML 轉換為 PDF,這項功能尤其強大,非常適合現代、響應式 PDF 文件生成。 無論您是希望從頭開始創建 PDF 文件,從 HTML 生成 PDF 文件,還是只需要一個出色的工具來操作 PDF 文件,IronPDF 都能滿足您的需求。

IronPDF 支援 .NET Core、.NET Framework、Azure 和 Docker,非常適合初創公司和企業級應用程式。IronPDF 具有強大的功能、良好的文件和可在各種平台上運行的能力,是生成 PDF 的穩固選擇。

安裝 IronPDF

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
$vbLabelText   $csharpLabel

或者使用 Visual Studio 的 NuGet 使用者介面。 IronPDF 提供免費試用和靈活的授權,供商業用途使用,且不受 AGPL 限制。

IronPDF 範例代碼:5 行將 HTML 轉換為 PDF

using IronPdf;

var Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>");
pdf.SaveAs("IronPdfHello.pdf");
using IronPdf;

var Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>");
pdf.SaveAs("IronPdfHello.pdf");
Imports IronPdf

Private Renderer = New ChromePdfRenderer()
Private pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>")
pdf.SaveAs("IronPdfHello.pdf")
$vbLabelText   $csharpLabel

輸出

IronPDF 輸出

🔍 這個簡單的示例使用了無頭Chromium引擎的全部功能,能夠像瀏覽器一樣精確地渲染HTML/CSS,而這正是PDFsharp和iTextSharp所難以達到的。

效能與開發者體驗

IronPDF因其以下特點而廣受好評:

  • 準確性:使用 Chromium 引擎生成 PDF 以實現像素級精確渲染
  • 易於使用:無需手動管理頁面大小、邊距或字體
  • 速度:支持多线程的快速生成
  • 支援:活躍的文件,範例和客戶支援

    基準測試顯示,IronPDF 能夠在標準機器上在不到 2 秒的時間內生成帶有圖像、CSS 和 JavaScript 的複雜 HTML 發票,遠遠超過 iTextSharp 的 HTML 附加功能或 PDFsharp 的手動繪圖方法。

為什麼選擇IronPDF?

IronPDF 提供現代化的開發體驗,包含以下主要功能:

  • 全面支援 HTML5、CSS3、JS、Bootstrap 和響應式設計,用於 PDF 轉換,提供準確的渲染效果
  • 使用 PDF/A、數位簽名、浮水印、合併和分割等進階功能
  • 適合商業產品的授權——無需擔心 AGPL
  • 卓越的文件以及豐富的範例支援
  • 輕鬆從 PDF 文件中提取數據
  • IronPDF 不僅限於 C# 程式語言,還提供 Java、Node.js 和 Python 版本

    無論您是在建立發票生成器、報告引擎,還是基於瀏覽器的文檔系統,IronPDF 讓它變得簡單而專業。

最後想法:應該選擇哪個 C# PDF 函式庫?

C# PDF 函式庫的世界是多樣的,我們所探索的每一個工具——PDFsharpiTextSharpIronPDF——都有其自身的優勢、劣勢和理想的使用情境。 那麼,您應該為您的.NET應用程式選擇哪一個呢?

🧩 PDFsharp:輕量級和自助式

如果您正在構建小型應用程式,有基本的文件渲染需求,並且更喜歡對 PDF 繪圖操作進行完全控制,那麼PDFsharp是一個可靠的起點。 其開源性質和低開銷使其成為許多專案中,以授權和簡單性為關鍵的理想選擇。 然而,折衷方案是需要手動工作:不支援 HTML,無現代化的網頁渲染,並且活躍開發有限。

如果您使用 PDFsharp:

  • 您正在尋求以程式化方式創建包含線條、文字和簡單佈局的 PDF 文件。
  • 您的應用不需要 HTML 到 PDF、CSS 樣式或 JavaScript。
  • 開源相容性(MIT許可證)是必不可少的。

🏛 iTextSharp:功能強大但複雜

iTextSharp 位於企業範疇的高端。 它功能強大、安全,適合進行複雜的 PDF 操作,例如:

  • 填寫表單
  • 生成條碼
  • 使用數位簽章來保護檔案
  • 符合 PDF/A 和 PDF/UA 等格式

    然而,其 AGPL 授權可能具有限制性,除非您準備開源代碼或支付商業授權費用——這並不便宜。此外,學習曲線較陡峭,HTML 渲染是附加功能,而非核心功能。

    如果使用 iTextSharp:

  • 您正在構建具有表單填寫或安全 PDF 的政府或監管系統。
  • 您需要對低階 PDF 操作進行細緻控制。
  • 您有商業授權的預算。

🚀 IronPDF:現代、直觀且功能豐富

相比之下,IronPDF 被設計用來以優雅和高速的方式解決現實世界的問題。 它結合了網頁技術(HTML、CSS、JavaScript)的熟悉性與Chromium渲染的強大功能,使開發人員能夠輕鬆地將複雜的版面轉換為精美的PDF。

它處理:

  • 像素完美的 HTML 到 PDF 渲染
  • JavaScript 執行(非常適合圖表和動態數據)
  • PDF 合併、拆分、加水印、簽名及其他各種 PDF 文件操作選項
  • 與 .NET 6、7 及更高版本的整合
  • 輕鬆部署到 Azure、Docker 和 CI/CD 管道

    最重要的是,IronPDF 專注於開發者體驗:簡潔的語法、快速渲染、豐富的文檔和快速回應的支援。

    如果您選擇IronPDF:

  • 您需要一個有價值的工具,用於將 HTML 轉換為 PDF,看起來就像瀏覽器的列印預覽。
  • 您的文件依賴於網頁樣式(Bootstrap、Flexbox、Google 字體)。
  • 您需要具有靈活性、支援和更新的商業許可證。
  • 您重視上市時間和開發者生產力。

判決:IronPDF 在大多數 .NET 開發人員中勝出

雖然 PDFsharp 是一個基本使用的很好選擇,而 iTextSharp 服務於合規要求嚴格的利基行業,但IronPDF 脫穎而出,成為現代 C# 開發人員的全方位 PDF 解決方案。 它在性能、簡單性和實用性之間取得了完美平衡。

無論您是要渲染動態報告、從網頁範本生成客戶發票,還是匯出豐富的文檔,IronPDF 讓您可以專注於您的應用程式,而不是 PDF 渲染的細節。

📎 準備好試試看了嗎?

別聽我們說的——自己去探索IronPDF吧:

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
iTextSharp 讀取 PDF 替代方案(開發人員教程)
下一個 >
比較在C#中使用iTextSharp和IronPDF進行PDF拆分