在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
无论您是构建一个文档密集型的企业解决方案,在SaaS应用程序中生成发票,还是从.NET仪表板导出报告,总会出现一个问题:
“我应该使用哪个 C# PDF 库?”
在 .NET 生态系统中,有三个库尤为突出:PDFsharp、iTextSharp 和 IronPDF。 每一个都有其优势、特点和最佳使用场景。 但是,对于使用 PDF 文件的现代开发者来说,无论是在 .NET 6+、.NET Core 还是传统的 .NET Framework 中,哪一种才是真正的最佳选择呢?
本综合指南深入探讨每个库,比较功能、安装、可用性和输出质量。 我们将逐步讲解实际代码示例,分析每个库的优缺点,并根据实际开发需求提供实用的建议。
让我们开始吧。
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
它也兼容用于.NET Core环境的PdfSharpCore。
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 库,强调简洁、渲染准确性和丰富的功能。 如果您希望将 HTML 转换为支持完整 CSS、JavaScript 和网络字体的 PDF,这是一个特别强大的工具——使其成为现代响应式 PDF 文档生成的理想选择。 无论您是希望从头创建 PDF 文档,从 HTML 生成 PDF 文档,还是只需要一个出色的工具来操作 PDF 文件,IronPDF 都能满足您的需求。
支持 .NET Core、.NET Framework、Azure 和 Docker,IronPDF 非常适合初创公司和企业级应用程序。凭借强大的功能、良好的文档和在各种平台上执行的能力,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,还在构建精美、专业且已准备好生产的文档,它们看起来完全符合您的设计。 缩短开发时间,消除渲染难题,并更快地交付。