跳至页脚内容
产品比较
iText 7 和 IronPDF 提取 PDF 中文本的比较

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

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

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

In the .NET ecosystem, three libraries stand out: PDFsharp, iTextSharp, and IronPDF. 每一个都有其优势、特性和最佳使用案例。 但哪个对于在.NET 6+、.NET Core,甚至是传统.NET Framework中处理PDF文件的现代开发人员来说是真正的最佳选择呢?

本综合指南深入探讨每个库,比较其功能、安装、可用性和输出质量。 我们将通过实际代码示例、每个库的优缺点来提供基于实际开发需求的实用建议。

让我们开始吧。

PDFsharp概述

Itext7 Extract Text From Pdf 1 related to PDFsharp概述

什么是PDFsharp?

PDFsharp是一个开源库,允许开发人员使用C#实时创建和处理PDF文档。 它支持从头创建PDF,以及修改现有PDF文件。 其简洁、面向对象的API非常适合寻找轻量且易集成解决方案的开发人员。

尽管由社区推动,但它享有忠实的用户群体,仍然是进行简单PDF任务的首选,这些任务不需要高级渲染或HTML的动态内容。

安装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

输出

PDFsharp PDF

请注意PDFsharp不支持开箱即用的HTML渲染或CSS解析,因此最适合用于基于绘图的文档生成。 对于HTML到PDF的渲染,需要为PDFsharp使用HtmlRenderer

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

通过NuGet,您可以安装它:

Install-Package itext

较新的版本使用iText Core命名空间。 在集成之前请务必查看许可条款。

示例代码:基本的PDF生成

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

// Create a writer and initiates a PDF document
PdfWriter writer = new PdfWriter("iTextHello.pdf");
var pdf = new PdfDocument(writer);
Document document = new Document(pdf);

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

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

// Create a writer and initiates a PDF document
PdfWriter writer = new PdfWriter("iTextHello.pdf");
var pdf = new PdfDocument(writer);
Document document = new Document(pdf);

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

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

' Create a writer and initiates a PDF document
Private writer As New PdfWriter("iTextHello.pdf")
Private pdf = New PdfDocument(writer)
Private document As New Document(pdf)

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

' Closing the document
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。

从NuGet包管理器控制台安装:

Install-Package IronPdf

或者使用Visual Studio的NuGet UI。 IronPDF提供免费试用和用于商业用途的灵活许可,无AGPL限制。

IronPDF示例代码:用5行实现HTML到PDF

using IronPdf;

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

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

Private Renderer = New ChromePdfRenderer()
' Render a simple HTML string as a PDF document
Private pdf = Renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>This was rendered using Chrome.</p>")
' Save the PDF document as a file
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文档中提取数据
  • 不仅局限于C#编程语言,IronPDF还提供Java、Node.js和Python版本

无论您是在构建发票生成器、报告引擎还是基于浏览器的文档系统,IronPDF都能让您的工作简单且专业。

最后思考:您应该选择哪个C# PDF库?

The world of C# PDF libraries is diverse, and each tool we’ve explored—PDFsharp, iTextSharp, and IronPDF—brings its own strengths, weaknesses, and ideal use cases. 那么,您应该为您的.NET应用程序选择哪一个?

PDFsharp:轻量级和DIY

如果您正在构建一个小型应用程序,有基本的文档渲染需求,且更喜欢完全控制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字体)。
  • 您需要具备灵活性、支持、更新的商业许可证。
  • 您重视上市时间和开发人员的生产力。

判定:对于大多数.NET开发人员,IronPDF胜出

虽然PDFsharp对于基础用途是不错的选择,iTextSharp适合合规要求繁重的行业,但IronPDF作为现代C#开发人员的全能PDF解决方案脱颖而出。 它在功能、简易性和现实应用的可用性之间达到了完美的平衡。

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

准备好试用吗?

不要仅仅相信我们的话——亲自探索IronPDF:

使用IronPDF,您不仅是在生成PDF——您正在构建经过专业润色、投入生产准备的文档,它们的外观与您的设计完全一致。 减少开发时间,消除渲染烦恼,加快发布速度。

[{i:(PDFsharp和iTextSharp是其各自所有者的注册商标。 本网站与PDFsharp或iTextSharp无关联,没有得到他们的支持或赞助。所有产品名称、标识和品牌均为其各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。]

常见问题解答

如何使用 iText7 在 C# 中从 PDF 中提取文本?

要使用 iText7 从 PDF 中提取文本,您可以创建一个 PDF 阅读器实例并使用 `PdfTextExtractor` 类。 然而,由于其复杂的语法和许可限制,开发人员可能更喜欢像 IronPDF 这样的替代方案,以实现更简单的实现。

IronPDF 在将 HTML 转换为 PDF 时的选择更佳的原因是什么?

IronPDF 由于其基于 Chromium 的呈现引擎而在 HTML 到 PDF 转换中受青睐,从而确保像素完美的精度和对 HTML5、CSS3 和 JavaScript 的完整支持。

iText7 和 IronPDF 在许可上的区别是什么?

iText7 需要 AGPL 许可证用于开源项目,除非购买商业许可证,而 IronPDF 提供更灵活的许可模式,吸引商业和个人开发人员。

IronPDF 的常见用例是什么?

IronPDF 通常用于从 HTML 内容生成 PDF,在 .NET 应用程序中创建报告、发票和文档,由于其易用性和强大的功能集。

哪个库更适合企业级 PDF 任务?

由于其高级功能(如数字签名和表单字段),iText7 常用于企业级任务。 然而,IronPDF 提供了一个更简单、更具成本效益的解决方案,具有大多数 PDF 生成需求的综合功能。

IronPDF 如何确保 PDF 渲染的准确性?

IronPDF 通过利用基于 Chromium 的引擎确保 PDF 的准确渲染,该引擎支持现代 Web 标准,并提供 Web 内容到 PDF 的高保真转换。

使用 IronPDF 的主要好处是什么?

开发人员受益于 IronPDF 的简单 API、全面的文档和快速的呈现能力,这使其成为处理 PDF 生成和操作的 C# 开发人员的绝佳选择。

IronPDF 可以用于云应用吗?

是的,IronPDF 可以无缝集成到基于云的应用程序中,支持在 Azure 和 Docker 上的部署,从而增强其在现代软件开发环境中的适用性。

IronPDF 的输出质量如何与其他 PDF 库相比?

IronPDF 的输出质量卓越,得益于其先进的渲染引擎,确保从 HTML 生成的 PDF 在视觉上是一致且准确的,是专业文件创建的可靠选择。

推荐给初学 PDF 生成 C# 的开发人员的库是什么?

推荐给初学 PDF 生成 C# 的开发人员使用 IronPDF,因为其用户友好的语法和全面的支持,允许易于集成和快速学习曲线。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。