产品比较

itext7从PDF中提取文本与IronPDF(代码示例教程)

无论您是构建一个文档密集型的企业解决方案,在SaaS应用程序中生成发票,还是从.NET仪表板导出报告,总会出现一个问题:

“我应该使用哪个 C# PDF 库?”

在 .NET 生态系统中,有三个库尤为突出:PDFsharpiTextSharpIronPDF。 每一个都有其优势、特点和最佳使用场景。 但是,对于使用 PDF 文件的现代开发者来说,无论是在 .NET 6+、.NET Core 还是传统的 .NET Framework 中,哪一种才是真正的最佳选择呢?

本综合指南深入探讨每个库,比较功能、安装、可用性和输出质量。 我们将逐步讲解实际代码示例,分析每个库的优缺点,并根据实际开发需求提供实用的建议。

让我们开始吧。

PDFsharp概述

Itext7 Extract Text From Pdf 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

它也兼容用于.NET Core环境的PdfSharpCore。

示例代码:创建简单的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 详细分析

Itext7 Extract Text From Pdf 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#的全面选择

Itext7 Extract Text From Pdf 5 related to IronPDF:C#的全面选择

为什么 IronPDF 与众不同

IronPDF 是一个商业级的 .NET 库,强调简洁、渲染准确性和丰富的功能。 如果您希望将 HTML 转换为支持完整 CSS、JavaScript 和网络字体的 PDF,这是一个特别强大的工具——使其成为现代响应式 PDF 文档生成的理想选择。 无论您是希望从头创建 PDF 文档,从 HTML 生成 PDF 文档,还是只需要一个出色的工具来操作 PDF 文件,IronPDF 都能满足您的需求。

支持 .NET Core、.NET Framework、Azure 和 Docker,IronPDF 非常适合初创公司和企业级应用程序。凭借强大的功能、良好的文档和在各种平台上执行的能力,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库的世界是多样化的,我们探索的每一个工具—PDFsharpiTextSharp,和IronPDF—都具有各自的优点、缺点和理想的使用场景。 那么您应该为您的.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 Fonts)。
  • 您需要一份具有灵活性、支持和更新的商业许可证。
  • 您重视上市时间和开发人员的生产力。

结论:IronPDF 赢得了大多数 .NET 开发人员的青睐

虽然PDFsharp是基本使用的一个不错选择,而iTextSharp服务于合规要求高的利基行业,IronPDF以现代C#开发者的一体化PDF解决方案脱颖而出。 它在功率、简单性和实际可用性之间达到了完美的平衡。

无论您是在渲染动态报告、从网页模板生成客户发票,还是导出丰富的文档,IronPDF让您专注于应用程序本身,而非PDF渲染的细节。

📎 准备好试试了吗?

不必只听我们说——亲自探索IronPDF:

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
带有 IronPDF 的产品比较
下一步 >
IronPDF和PDFium.NET比较