在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
無論您是在構建文檔繁重的企業解決方案、在 SaaS 應用程式中生成發票,還是從 .NET 儀表板導出報告,總會出現一個問題:
「我應該使用哪個 C# PDF 庫?」
在 .NET 生態系統中,有三個程式庫脫穎而出:PDFsharp、iTextSharp 和 IronPDF。 每個都有其優勢、特點和最佳使用案例。 但對於在 .NET 6+、.NET Core 甚至是傳統 .NET Framework 中使用 PDF 文件的現代開發者來說,究竟哪一個才是真正的最佳選擇?
本綜合指南深入探討每個庫,比較功能、安裝、可用性和輸出品質。 我們將逐步講解實際代碼範例、各個庫的優缺點,並根據實際開發需求提供實用建議。
讓我們開始吧。
PDFsharp 是一個開源庫,允許開發人員使用 C# 動態創建和處理 PDF 文檔。 它支持從頭開始創建 PDF,以及修改現有的 PDF 文件。 其簡潔的面向對象API非常適合尋求輕量且易於整合解決方案的開發者。
儘管該項目由社群驅動,但它擁有忠實的用戶群,並且在不需要進階渲染或動態HTML內容的簡單PDF任務中仍然是首選。
透過NuGet安裝非常簡單:
Install-Package PDFsharp
Install-Package PDFsharp
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package PDFsharp
它也與 PdfSharpCore 用於 .NET Core 環境相容。
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")
輸出
📝 *注意:PDFsharp 不直接支持 HTML 渲染或 CSS 解析,因此最適合用於基於繪圖的文件生成。 要進行 HTML 到 PDF 的渲染,您需要 HtmlRenderer for PDFsharp。
優點:
輕量且易於安裝
缺點:
iTextSharp 是 iText 的 .NET 移植版,一個基於 Java 的強大 PDF 庫。 它提供了先進的功能,包括數位簽名、表單欄位、條碼等。 iTextSharp 可高度自定義,最適合有法律或法規文件需求的企業。
然而,它有一個限制——授權。 iTextSharp 採用 AGPL 授權,這意味著除非您購買商業授權,否則您必須將您的專案開源。
Install-Package itext
Install-Package itext
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package itext
較新的版本使用 iText Core 命名空間。 在整合之前,請務必查看授權條款。
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()
輸出
📌 *提示:iTextSharp 的 iText 9 版本是模組化的。 要進行 HTML 轉換或條碼生成,安裝其他 NuGet 套件,例如收費的附加組件 pdfHTML。
優勢:
模組化架構與插件
弱點:
IronPDF 是一個商用級的 .NET 函式庫,著重於簡易性、渲染準確性及豐富功能。 如果您想將支援完整 CSS、JavaScript 和網頁字體的 HTML 轉換為 PDF,這項功能尤其強大,非常適合現代、響應式 PDF 文件生成。 無論您是希望從頭開始創建 PDF 文件,從 HTML 生成 PDF 文件,還是只需要一個出色的工具來操作 PDF 文件,IronPDF 都能滿足您的需求。
IronPDF 支援 .NET Core、.NET Framework、Azure 和 Docker,非常適合初創公司和企業級應用程式。IronPDF 具有強大的功能、良好的文件和可在各種平台上運行的能力,是生成 PDF 的穩固選擇。
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
或者使用 Visual Studio 的 NuGet 使用者介面。 IronPDF 提供免費試用和靈活的授權,供商業用途使用,且不受 AGPL 限制。
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")
輸出
🔍 這個簡單的示例使用了無頭Chromium引擎的全部功能,能夠像瀏覽器一樣精確地渲染HTML/CSS,而這正是PDFsharp和iTextSharp所難以達到的。
IronPDF因其以下特點而廣受好評:
支援:活躍的文件,範例和客戶支援
基準測試顯示,IronPDF 能夠在標準機器上在不到 2 秒的時間內生成帶有圖像、CSS 和 JavaScript 的複雜 HTML 發票,遠遠超過 iTextSharp 的 HTML 附加功能或 PDFsharp 的手動繪圖方法。
IronPDF 提供現代化的開發體驗,包含以下主要功能:
IronPDF 不僅限於 C# 程式語言,還提供 Java、Node.js 和 Python 版本
無論您是在建立發票生成器、報告引擎,還是基於瀏覽器的文檔系統,IronPDF 讓它變得簡單而專業。
C# PDF 函式庫的世界是多樣的,我們所探索的每一個工具——PDFsharp、iTextSharp 和 IronPDF——都有其自身的優勢、劣勢和理想的使用情境。 那麼,您應該為您的.NET應用程式選擇哪一個呢?
如果您正在構建小型應用程式,有基本的文件渲染需求,並且更喜歡對 PDF 繪圖操作進行完全控制,那麼PDFsharp是一個可靠的起點。 其開源性質和低開銷使其成為許多專案中,以授權和簡單性為關鍵的理想選擇。 然而,折衷方案是需要手動工作:不支援 HTML,無現代化的網頁渲染,並且活躍開發有限。
如果您使用 PDFsharp:
iTextSharp 位於企業範疇的高端。 它功能強大、安全,適合進行複雜的 PDF 操作,例如:
符合 PDF/A 和 PDF/UA 等格式
然而,其 AGPL 授權可能具有限制性,除非您準備開源代碼或支付商業授權費用——這並不便宜。此外,學習曲線較陡峭,HTML 渲染是附加功能,而非核心功能。
如果使用 iTextSharp:
相比之下,IronPDF 被設計用來以優雅和高速的方式解決現實世界的問題。 它結合了網頁技術(HTML、CSS、JavaScript)的熟悉性與Chromium渲染的強大功能,使開發人員能夠輕鬆地將複雜的版面轉換為精美的PDF。
它處理:
輕鬆部署到 Azure、Docker 和 CI/CD 管道
最重要的是,IronPDF 專注於開發者體驗:簡潔的語法、快速渲染、豐富的文檔和快速回應的支援。
如果您選擇IronPDF:
雖然 PDFsharp 是一個基本使用的很好選擇,而 iTextSharp 服務於合規要求嚴格的利基行業,但IronPDF 脫穎而出,成為現代 C# 開發人員的全方位 PDF 解決方案。 它在性能、簡單性和實用性之間取得了完美平衡。
無論您是要渲染動態報告、從網頁範本生成客戶發票,還是匯出豐富的文檔,IronPDF 讓您可以專注於您的應用程式,而不是 PDF 渲染的細節。
別聽我們說的——自己去探索IronPDF吧:
🧰 查看 GitHub 示例和代码片段
使用IronPDF,您不僅僅是在生成PDF——您是在構建打磨得光鮮亮麗、專業且適合生產的文檔,這些文檔完全符合您的設計。 縮短開發時間,消除渲染問題,加快產品出貨速度。