跳至页脚内容
产品比较

如何在C#中使用iTextSharp读取PDF文档:

处理 PDF 是 C# 开发中的一项常见任务,从提取文本到修改文档都是如此。 iText 7 长期以来一直是这方面的首选库,但其复杂的语法和陡峭的学习曲线可能会降低开发速度。

IronPDF提供了一种更简单、更高效的替代方案。IronPDF 拥有直观的 API、内置 HTML 到 PDF 的转换以及更简便的文本提取功能,可以用更少的代码简化 PDF 的处理。 在本文中,我们将比较 iText 7 和 IronPDF,说明为什么 IronPDF 是 C# 开发人员更明智的选择。

了解 iText 7:概述

!a href="/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-1.webp">iTextSharp 主页。

iText 7(最初为 iTextSharp)是一个功能强大的开源库,用于在 .NET 中处理 PDF。 它提供了创建、修改、加密和提取 PDF 文档内容的广泛功能。 许多开发人员依靠它来自动执行文档工作流、生成报告和处理大规模 PDF 处理任务。

iText 7 的最大优势之一是对 PDF 结构的精细控制。 它支持注释、表单字段、水印和数字签名,是一款功能强大的高级文档处理工具。 此外,这些工具文档齐全,使用广泛,拥有强大的社区支持和众多可用的第三方资源。

安装 iText 7

要在 .NET 项目中安装 iText 7,可以使用 Visual Studio 中的 NuGet 包管理器

使用 NuGet 包管理器控制台:

Install-Package itext7

然而,iText 7 也面临着挑战。 其复杂的 API 需要更多代码才能完成文本提取或合并 PDF 等常见任务,并且缺乏对 HTML 到 PDF 转换的内置支持,这使得网络到文档的工作流程变得更加困难。 此外,其 AGPL 许可要求企业购买商业许可,以避免开源发布要求。

对于寻求更加精简、高级且具有现代功能的 API 的开发人员来说,IronPdf 是一个令人信服的选择。

介绍 IronPDF:卓越的解决方案

!a href="/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-3.webp">IronPDF 主页。

IronPDF 是一个 .NET 库,旨在使 PDF 提取操作生成变得简单高效。 iText 7 的许多操作都需要大量编码,而 IronPDF 则不同,它允许开发人员以最小的工作量阅读、编辑和修改 PDF。

在 PDF 提取方面,IronPDF 只需几行代码即可轻松从 PDF 中提取文本、图像和结构化数据,从而轻松简化文本提取任务。 说到 PDF 操作,IronPDF 支持 合并分割水印 和编辑 PDF,而不需要复杂的底层操作。

此外,IronPDF 还包括本地 HTML 到 PDF 的转换,使从网页或现有 HTML 内容生成 PDF 变得简单。 它还支持 JavaScript 渲染、数字签名加密,为现代应用程序提供了一个全面的工具包。

IronPDF 拥有更简洁的 API、更完善的文档和商业支持,是一款对开发人员友好的替代工具,可简化 C# 中的 PDF 处理。 在下面的章节中,我们将比较这两个库是如何处理 PDF 关键任务的,以及 IronPDF 为什么能为 C# 开发人员提供更好的体验。

安装

要在您的 C# 项目中安装并运行 IronPDF,只需在 NuGet 软件包管理器中运行以下一行即可:

Install-Package IronPdf

或者,也可以访问 Tools (工具)> NuGet Package Manager (NuGet 软件包管理器)> Manage NuGet Packages for Solution(管理解决方案的 NuGet 软件包),然后搜索 IronPdf。

!a href="/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-6.webp">IronPDF NuGet 包管理器屏幕。

然后,只需点击 "安装",IronPDF 就会立即添加到您的项目中!

PDF 处理中 IronPDF 与 iText 7 的对比:代码比较

使用 IronPDF 提取文本

IronPdf 通过一个对开发人员更加友好的 API 简化了 PDF 文本提取、操作和阅读。 与 iText 7 需要低级操作不同,IronPDF 只需几行代码即可实现文本提取。

为了展示 IronPDF 强大的文本提取工具的实际效果,我将提取以下 PDF 文档中的内容。

用于提取文本的 PDF 样本

代码示例

using IronPdf;

class Program
{
    static void Main()
    {
        string pdfPath = "sample.pdf";

        // Load the PDF document
        var pdf = new PdfDocument(pdfPath);

        // Extract all text from the loaded PDF document
        string extractedText = pdf.ExtractAllText();

        // Output the extracted text to the console
        Console.WriteLine(extractedText);
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        string pdfPath = "sample.pdf";

        // Load the PDF document
        var pdf = new PdfDocument(pdfPath);

        // Extract all text from the loaded PDF document
        string extractedText = pdf.ExtractAllText();

        // Output the extracted text to the console
        Console.WriteLine(extractedText);
    }
}
$vbLabelText   $csharpLabel

输出

!a href="/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-2.webp">IronPDF 控制台输出。

解释:

IronPDF 利用其高级 API 简化了 PDF 文本提取,无需进行低级操作。 只需几行代码,IronPDF 就能高效地提取 PDF 文档中的所有文本,这与 iText 7 等库不同,后者通常需要手动迭页和进行复杂的处理。

在示例中,PdfDocument 类加载 PDF,ExtractAllText() 方法可快速提取所有文本,从而简化流程。 与需要手动处理单个页面和文本元素的 iText 7 相比,这是一项重大优势。

扩展 IronPDF 以完成其他任务:

在基本文本提取示例的基础上,IronPDF 的高级 API 简化了其他常见的 PDF 任务,同时保持了易用性和效率:

从特定页面提取文本:如果您需要从特定页面或范围内提取文本,IronPDF 可以让您轻松完成此操作。 例如,从第一页提取文本:

var pdf = new PdfDocument("sample.pdf");

// Access text from the first page
string pageText = pdf.Pages[0].Text;

Console.WriteLine(pageText);
var pdf = new PdfDocument("sample.pdf");

// Access text from the first page
string pageText = pdf.Pages[0].Text;

Console.WriteLine(pageText);
$vbLabelText   $csharpLabel

PDF 处理:从多个 PDF 文件中提取文本或数据后,您可能希望将它们合并到一个文档中。 IronPDF 让合并多个 PDF 文件变得简单:

var pdf1 = new PdfDocument("file1.pdf");
var pdf2 = new PdfDocument("file2.pdf");

// Merge the PDFs into a single document
var combinedPdf = PdfDocument.Merge(pdf1, pdf2);

combinedPdf.SaveAs("combined_output.pdf");
var pdf1 = new PdfDocument("file1.pdf");
var pdf2 = new PdfDocument("file2.pdf");

// Merge the PDFs into a single document
var combinedPdf = PdfDocument.Merge(pdf1, pdf2);

combinedPdf.SaveAs("combined_output.pdf");
$vbLabelText   $csharpLabel

PDF 转 HTML 转换:如果您需要将 PDF 文件转换回 HTML 格式以便进一步提取或处理,IronPDF 也提供了此功能:

var pdf = new PdfDocument("sample.pdf");

// Convert the PDF to an HTML string
string htmlContent = pdf.ToHtmlString();
var pdf = new PdfDocument("sample.pdf");

// Convert the PDF to an HTML string
string htmlContent = pdf.ToHtmlString();
$vbLabelText   $csharpLabel

有了 IronPDF,文本提取只是一个开始。 该库的 API 简单而功能强大,可扩展至各种 PDF 操作任务,所有操作均采用直观的格式,易于集成到您的工作流程中。

使用 iText 7 阅读 PDF。

iText 7 需要使用 PDF阅读器、流和字节级数据处理。 提取文本并不简单,因为需要反复浏览 PDF 页面并手动处理各种结构。 在本代码示例中,我们将使用与 IronPDF 部分相同的 PDF 文档。

using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;

class Program
{
    static void Main()
    {
        string pdfPath = "sample.pdf";
        string extractedText = ExtractTextFromPdf(pdfPath);
        Console.WriteLine(extractedText);
    }

    // Method to extract text from a PDF
    static string ExtractTextFromPdf(string pdfPath)
    {
        // Use PdfReader to load the PDF
        using (PdfReader reader = new PdfReader(pdfPath))
        // Open the PDF document for processing
        using (iText.Kernel.Pdf.PdfDocument pdfDoc = new iText.Kernel.Pdf.PdfDocument(reader))
        {
            string text = "";
            // Iterate through each page and extract text
            for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++)
            {
                text += PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(i)) + Environment.NewLine;
            }
            return text;
        }
    }
}
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;

class Program
{
    static void Main()
    {
        string pdfPath = "sample.pdf";
        string extractedText = ExtractTextFromPdf(pdfPath);
        Console.WriteLine(extractedText);
    }

    // Method to extract text from a PDF
    static string ExtractTextFromPdf(string pdfPath)
    {
        // Use PdfReader to load the PDF
        using (PdfReader reader = new PdfReader(pdfPath))
        // Open the PDF document for processing
        using (iText.Kernel.Pdf.PdfDocument pdfDoc = new iText.Kernel.Pdf.PdfDocument(reader))
        {
            string text = "";
            // Iterate through each page and extract text
            for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++)
            {
                text += PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(i)) + Environment.NewLine;
            }
            return text;
        }
    }
}
$vbLabelText   $csharpLabel

输出

!a href="/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-7.webp">iText 7 控制台输出。

解释:

  • PdfReader 加载 PDF 文件以供阅读。
  • PdfDocument 对象允许迭代页面。
  • PdfTextExtractor.GetTextFromPage()从每个页面获取文本。
  • 最终文本将存储在一个字符串中并显示出来。

这种方法可行,但需要手动迭代,对于结构化文档或扫描的 PDF 文件来说可能比较麻烦。

iText 7 和 IronPDF 的比较

iText 7 需要详细的编码才能执行 PDF 操作,而 IronPDF 则通过简单直接的方法简化了这些任务。 例如,使用 iText 7 从 PDF 中提取文本涉及多个步骤和大量代码,而 IronPDF 只需几行即可完成。 此外,IronPDF 对 HTML 到 PDF 转换的支持更加强大,可以无缝处理复杂的 HTML、CSS 和 JavaScript。

主要收获

  • IronPDF 通过更直观、更精简的 API 简化了 PDF 阅读和操作任务,只需更少的代码即可执行常见操作。
  • 与 iTextSharp 更为复杂的迭代过程相比,IronPdf 的文本提取更容易实现,为开发人员节省了时间。
  • 与 iTextSharp 的 AGPL 许可相比,IronPdf 的永久许可对商业更友好,限制更少。
  • IronPdf 拥有更好的文档,更便于快速排除故障,非常适合那些希望快速解决问题而又不想筛选过多资源的开发人员。

使用 IronPDF 优化您的工作流程

IronPDF 提供了一套强大的功能,不仅限于 PDF 阅读。 这些功能使其成为开发人员优化 PDF 工作流程的强大解决方案。 以下是 IronPdf 如何提升您的开发流程:

1.从 PDF 中提取文本

IronPDF 可以轻松地从 PDF 文件中提取文本,非常适合涉及文档分析、数据提取或内容索引的工作流程。 有了 IronPDF,您可以快速从 PDF 中提取文本并在应用程序中使用,而无需处理复杂的解析工作。

2.创建 PDF.

无论是创建报告、发票还是其他类型的文档,IronPDF 都能让您轻松地从头开始生成 PDF。 该工具还支持 HTML 到 PDF 的转换,使您能够利用现有的网页内容并生成格式良好的 PDF。 这非常适合需要将网页或动态 HTML 内容转换为可下载 PDF 文件的情况。

3.高级 PDF 功能

除了基本的文本提取和 PDF 创建外,IronPDF 还支持填写 PDF 表单、添加注释和操作文档内容等高级功能。 这些功能对于法律、金融或教育等行业非常有用,因为在这些行业中,表单和反馈是工作流程的常规组成部分。

4.批量处理

IronPDF 非常适合处理大量 PDF 文件。 无论是从数百个文档中提取信息,还是将多个 HTML 文件转换为 PDF,IronPDF 都能自动高效地处理这些任务,既省时又省力。

5.自动化和效率

IronPDF 简化了通常耗时且重复的 PDF 操作任务。通过自动执行 PDF 文本提取、表格填写或批量转换等任务,开发人员可以专注于项目中更复杂的方面,而让 IronPDF 来处理繁重的工作。

技术支持和社区资源

为确保开发人员能够充分利用 IronPDF,该工具拥有强大的支持和社区资源:

  • 技术支持: IronPDF 通过电子邮件和票务系统提供直接支持,为任何实施或技术挑战提供帮助。
  • 社区资源: IronPDF 网站包括大量的文档、教程和博文。 开发人员还可以通过 GitHub 和 Stack Overflow 找到解决方案并分享知识,社区会积极讨论最佳实践和故障排除技巧。

结论

在本文中,我们探讨了 IronPDF 作为 .NET 开发人员强大、用户友好的 PDF 处理库的功能。 我们将其与 iText 7 进行了比较,强调了 IronPDF 如何简化文本提取和 PDF 操作等复杂任务。 IronPdf 简洁的 API 和先进的功能(包括编辑、水印和数字签名)使其成为现代 PDF 工作流程的卓越解决方案。

iText 7 需要复杂的编码才能完成常见的 PDF 任务,与此不同,IronPDF 允许您用最少的代码执行复杂的操作,为开发人员节省时间和精力。 无论您是处理扫描文档、从 HTML 生成 PDF 还是添加自定义水印,IronPDF 都能为您提供直观高效的处理方式。

如果您希望简化 PDF 工作流程,提高 C# 项目的工作效率,IronPDF 将是您的理想选择。

我们邀请您下载 IronPDF 并亲自试用。 通过免费试用,您可以亲身体验将 IronPDF 集成到您的应用程序中是多么容易,并从今天就开始受益于其强大的功能。

单击下方开始免费试用:

  • 开始免费试用 IronPDF
  • 了解有关 IronPdf 的特性定价的更多信息 不要等待--利用 IronPDF 发掘无缝处理 PDF 的潜力!

请注意iText 7、PdfSharp、Spire.PDF、Syncfusion Essential PDF 和 Aspose.PDF 是其各自所有者的注册商标。 本网站与 iText 7、PdfSharp、Spire.PDF、Syncfusion Essential PDF 或 Aspose.PDF 无关,也未得到它们的支持或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。

常见问题解答

使用IronPDF在C#中处理PDF相较于iText 7的优势是什么?

IronPDF提供了更直观的API,支持HTML到PDF的转换,并简化了文本提取、合并和拆分PDF等任务。它需要的代码比iText 7更少,并提供了一个对企业友好的永久许可模式。

如何在C#中将网页转换为PDF?

你可以使用IronPDF的RenderUrlAsPdf方法将网页直接转换为PDF文档。这简化了通过内部处理HTML到PDF转换的过程。

IronPDF适合自动化大型PDF处理任务吗?

是的,IronPDF非常适合自动化和批量处理,使其在C#项目中高效处理大量PDF时理想适用。

我可以使用IronPDF从PDF中特定页码范围提取文本吗?

IronPDF提供从特定页面或页面范围提取文本的功能,允许精确处理PDF内容。

IronPDF为开发者提供什么支持资源?

IronPDF提供全面的文档、教程和活跃的社区。此外,还有通过电子邮件和工单系统提供的直接技术支持来帮助开发者。

IronPDF如何融入C#项目?

通过使用Visual Studio中的NuGet包管理器安装命令'Install-Package IronPdf',可以轻松将IronPDF集成到C#项目中。

IronPDF的许可选项是什么?

IronPDF提供对企业友好的永久许可模式,避免了iText 7的AGPL许可证所关联的开源分发要求。

IronPDF如何提高C#项目中开发者的生产力?

IronPDF通过其用户友好型API简化了复杂的PDF任务,减少了所需代码量,加快了开发过程,从而提高了C#项目中的生产力。

IronPDF支持将PDF转换为HTML吗?

是的,IronPDF提供了将PDF转换为HTML字符串的功能,以便在web应用中显示和操作PDF内容。

IronPDF用于PDF操作的关键功能是什么?

IronPDF支持广泛的功能,包括PDF创建、文本提取、HTML到PDF转换、合并、拆分、水印和数字签名,所有这些都通过易于使用的API实现。

Curtis Chau
技术作家

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

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