跳過到頁腳內容
產品比較

PDFsharp與iTextSharp(C# PDF庫比較)

無論您是在建立文件繁重的企業解決方案、在 SaaS 應用程式中產生發票,或是從 .NET 面板匯出報告,總會出現一個問題:

"Which C# PDF library should I use?" "我應該使用哪個 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

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

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

using PdfSharp.Pdf;
using PdfSharp.Drawing;

// Create a new PDF document
var document = new 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, XFontStyle.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 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, XFontStyle.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 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, XFontStyle.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

Output

PDFsharp PDF

請注意注意:PDFsharp 並不支援 HTML 渲染或 CSS 解析,因此最好用於基於繪圖的文件生成。 若要進行 HTML 至 PDF 的渲染,您需要使用 PDFsharp.
HtmlRenderer 工具。

PDFsharp 的優缺點

Pros:

  • 免費且開放原始碼的 PDF 函式庫(MIT 授權)
  • 非常適合低階繪圖和簡單的文字型 PDF 文件
  • 輕量且容易安裝

Cons:

  • 不支援原生 HTML 至 PDF
  • 渲染能力有限
  • 未針對進階使用個案進行主動維護

iTextSharp 詳細分析

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

什麼是 iTextSharp?

iTextSharp是 iText 的 .NET 移植,iText 是一個強大的基於 Java 的 PDF 函式庫。 它提供先進的功能,包括數位簽章、表單欄位、Barcode 等。 iTextSharp 可高度客製化,最適合有法律或法規文件需求的企業。

不過,這也是一項限制 - 授權。 iTextSharp 採用 AGPL 授權,這表示除非您購買商業授權,否則必須開放您專案的原始碼。

安裝 iTextSharp

Install-Package itext

較新版本使用 iText Core 命名空間。 請務必在整合前檢閱授權條款。

範例程式碼:基本 PDF 產生

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

// Create a PdfWriter object to write to a file
PdfWriter writer = new PdfWriter("iTextHello.pdf");
// Create a PDF document with the PdfWriter
var pdf = new PdfDocument(writer);
// Initialize the document
Document document = new Document(pdf);

// Add a paragraph to the document
document.Add(new Paragraph("Hello, iTextSharp!"));

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

// Create a PdfWriter object to write to a file
PdfWriter writer = new PdfWriter("iTextHello.pdf");
// Create a PDF document with the PdfWriter
var pdf = new PdfDocument(writer);
// Initialize the document
Document document = new Document(pdf);

// Add a paragraph to the document
document.Add(new Paragraph("Hello, iTextSharp!"));

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

' Create a PdfWriter object to write to a file
Private writer As New PdfWriter("iTextHello.pdf")
' Create a PDF document with the PdfWriter
Private pdf = New PdfDocument(writer)
' Initialize the document
Private document As New Document(pdf)

' Add a paragraph to the document
document.Add(New Paragraph("Hello, iTextSharp!"))

' Finalize the document
document.Close()
$vbLabelText   $csharpLabel

Output

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 函式庫,強調簡易性、渲染精確度和功能豐富性。 如果您想將 HTML 轉換成 PDF,它的功能尤其強大,可完整支援 CSS、JavaScript 和網頁字型,使其成為現代反應式 PDF 文件產生的理想選擇。 無論您是要從頭開始建立 PDF 文件、從 HTML 產生 PDF 文件 ,或是只需要一個擅長處理 PDF 檔案的工具,IronPDF 都能滿足您的需求。

IronPDF 支持 .NET Core、.NET Framework、Azure 和 Docker,非常适合初创公司和企业级应用程序。IronPDF 具備強大的功能、良好的說明文件,以及在各種平台中執行的能力,是產生 PDF 的可靠選擇。

安裝 IronPDF。

Install-Package IronPdf

或使用 Visual Studio NuGet UI。 IronPdf 提供免費試用和彈性的授權方式,適用於不受 AGPL 限制的商業用途。

IronPdf 範例程式碼:HTML 轉 PDF 只需 5 行。

using IronPdf;

// Create a PDF renderer that uses Chrome for rendering
var Renderer = new ChromePdfRenderer();
// Render an HTML string as a PDF
var pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>");
// Save the PDF document
pdf.SaveAs("IronPdfHello.pdf");
using IronPdf;

// Create a PDF renderer that uses Chrome for rendering
var Renderer = new ChromePdfRenderer();
// Render an HTML string as a PDF
var pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>");
// Save the PDF document
pdf.SaveAs("IronPdfHello.pdf");
Imports IronPdf

' Create a PDF renderer that uses Chrome for rendering
Private Renderer = New ChromePdfRenderer()
' Render an HTML string as a PDF
Private pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>")
' Save the PDF document
pdf.SaveAs("IronPdfHello.pdf")
$vbLabelText   $csharpLabel

Output

IronPDF Output

這個簡單的範例使用了無頭 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:輕量且 DIY

如果您正在建立一個小規模的應用程式,有基本的文件渲染需求,並且喜歡完全控制 PDF 繪圖作業,PDFsharp 是一個可靠的起點。 其開放源碼的特性和低開銷使其非常適合授權和簡單性為關鍵的專案。 然而,取捨是手動的工作:沒有 HTML 支援、沒有現代網頁渲染,以及有限的主動開發。

請在下列情況下使用 PDFsharp:

  • 您正在尋找以程式化的方式建立 PDF 檔案,其中包含線條、文字和簡單的排版。
  • 您的應用程式不需要 HTML 轉 PDF、CSS 定義或 JavaScript。
  • 必須具備開放原始碼相容性 (MIT 授權)。

iTextSharp:功能強大但複雜

iTextSharp 屬於企業級。 它功能強大、安全可靠,非常適合複雜的 PDF 操作,例如:

  • 填寫表格
  • 產生 BarCode
  • 使用數位簽章保護檔案
  • 符合 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 Fonts)。
  • 您需要具有彈性、支援和更新的商業授權。
  • 您重視產品上市時間和開發人員的生產力。

Verdict:IronPDF 贏得大多數 .NET 開發人員的青睞。

PDFsharp 和 iTextSharp 都是精簡使用的好選擇,而 iTextSharp 則服務於利基型的合規重工業,IronPDF 則是現代 C# 開發人員的多合一 PDF 解決方案。 在強大、簡單和實際可用性之間取得完美平衡。

無論您是要渲染動態報表、從網頁範本產生客戶發票,或是匯出豐富的文件,IronPDF 都能讓您專注於應用程式,而非 PDF 渲染的細微差異。

準備好試用了嗎?

請不要相信我們的說法,請親身體驗 IronPdf:

使用 IronPDF,您不僅僅是在生成 PDF,而是在建立精緻、專業、可直接投入生產的文件,這些文件的外觀與您設計的一模一樣。 縮短開發時間、消除渲染方面的困擾,並加快出貨速度。

請注意PDFsharp 和 iTextSharp 是其各自所有者的註冊商標。 本網站與 PDFsharp 或 iTextSharp 無關,亦未獲得其背書或贊助。所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。

常見問題解答

PDFsharp 與 iTextSharp 的主要差異為何?

PDFsharp 是一個開放原始碼的函式庫,適用於簡單的 PDF 工作,著重於以繪圖為基礎的文件產生,而 iTextSharp 則是一個強大的企業級函式庫,具有數位簽章和表單欄位等進階功能。不過,iTextSharp 採用 AGPL 授權,需要開放原始碼分享或商業授權。

如何在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF。IronPDF 也支援使用 RenderHtmlFileAsPdf 來轉換整個 HTML 檔案,以確保高逼真度和完整的網頁技術支援。

哪個 C# PDF 函式庫最適合 HTML 轉換為 PDF?

IronPDF 是 HTML 轉換為 PDF 的最佳選擇,它使用 Chromium 引擎提供像素般完美的渲染效果,並支援完整的 HTML5、CSS3 和 JS。它是希望從網頁內容建立專業且反應迅速的 PDF 文件的開發人員的理想選擇。

PDFsharp 適合複雜的 PDF 產生任務嗎?

PDFsharp 不適合複雜的 PDF 產生任務,因為它缺乏原生 HTML 至 PDF 的支援,而且渲染能力有限。它最適用於不需要進階呈現的簡單、基於繪圖的 PDF 製作。

使用強大的 PDF 函式庫有哪些授權上的考量?

iTextSharp 採用 AGPL 授權,這表示您必須將專案開放原始碼,或購買商業授權才能專屬使用。對於不願分享原始碼的企業和開發人員而言,這可能是一個重要的考慮因素。

IronPDF 可以用於 .NET Core 和 Azure 環境嗎?

是的,IronPDF 支持 .NET Core,可以部署在 Azure 環境中。它用途廣泛,非常適合現代開發所需,包括雲端應用程式和持續整合管道。

PDFsharp 的安裝步驟是什麼?

PDFsharp 可透過 NuGet 以以下指令安裝:Install-Package PDFsharp。它也與適用於 .NET Core 環境的 PdfSharpCore 相容,為開發人員提供直接的安裝程序。

與其他 PDF 函式庫相比,使用 IronPDF 的主要優勢是什麼?

使用 IronPDF 的主要優勢在於它能將 HTML 高準確性地渲染為 PDF,並支援現代網路技術。它簡化了 PDF 的產生,著重於開發人員的生產力,提供廣泛的文件和客戶支援。

IronPDF 提供哪些支援?

IronPDF 提供活躍的說明文件、範例程式碼和快速回應的客戶支持,讓開發人員更容易在專案中有效地整合和運用其功能。

IronPDF 是否提供免費試用?

是的,IronPDF 提供免費試用版,讓開發人員可以在承諾購買之前測試其特色和功能。這可以在他們的官網上取得。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。