产品比较

使用iTextSharp VS IronPDF从C#中的PDF提取文本

发布 2023年十一月14日
分享:

在数字文档管理的动态环境中,从 PDF 文件中毫不费力地提取数据的能力是支撑众多应用的基础任务。 提取文本的过程对于综合数据分析、内容索引、商业用途和文本处理等目的至关重要。 在一系列可用的工具中,iTextSharp 是一个备受推崇的 C# 库,它是从 PDF 文件中提取文本的出色解决方案。

在这篇内容全面的文章中,我们将深入探讨使用 iTextSharp 的丰富功能,探索这个功能强大、用途广泛的解析器库如何赋予开发人员使用 C# 编程语言从 PDF 文档中高效提取文本内容的能力。 我们将介绍基本方法、示例技术和最佳实践,让开发人员掌握有效利用 iTextSharp 进行文本提取所需的知识。 我们还将在本篇文章中讨论和比较最好、最强大的 PDF 库 IronPDF。

如何从 PDF C# 中提取文本;

  1. 下载用于从 PDF 中提取文本的 C# 库。

  2. 通过实例化 PdfReader 对象加载现有 PDF。

  3. 使用 GetTextFromPage 方法从 PdfDocument 对象中提取文本。

  4. 实例化 foreach 循环,遍历各行。

  5. 使用 WriteLine 方法将这些行写入文件。

什么是IronPDF?

IronPDF 概述是.NET 开发领域中一个功能丰富的著名库,它彻底改变了 PDF 的生成和操作。 IronPDF 为开发人员提供了一套全面的工具,可与 C# 应用程序无缝集成,轻松创建、修改和渲染 PDF 文档。 凭借其直观的应用程序接口和强大的功能,这个多功能库为从 HTML、图像和内容生成高质量 PDF 提供了无限可能。 在本文中,我们将探索 IronPDF 的功能,深入了解其主要特性,并演示如何利用它在 C# 中高效处理 PDF 相关任务;

iTextSharp 库

iTextSharp 是使用 C# 进行 PDF 操作领域著名的强大库,它彻底改变了开发人员处理 PDF 文档的方式。 它是一款多功能、功能强大的工具,便于创建、修改和提取 PDF 文件中的内容。 iTextSharp 使开发人员能够生成复杂的 PDF、提取图像、处理现有文档和提取数据,使其成为广泛应用的首选解决方案。 在本文中,我们将深入探讨 iTextSharp 的功能和特性,探索如何在 C# 编程环境中有效利用 iTextSharp 管理和处理 PDF。

安装 IronPDF

安装 IronPDF 是一个简单明了的过程,以下是在 C# 项目中安装和集成 IronPDF 的步骤。

  1. 打开 Visual Studio,创建一个新项目或打开一个现有项目。

  2. 转到 "工具",从下拉菜单中选择 "NuGet 包管理器"。

  3. 在新的侧菜单中,选择解决方案的 NuGet 包管理器。

    使用 iTextSharp VS IronPDF 在 C# 中提取 PDF 中的文本 图 1 - NuGet 软件包管理器

  4. 在 "NuGet 包管理器 "窗口中,选择 "浏览 "选项卡。

  5. 在搜索栏中输入 "IronPDF",然后按 Enter 键。

  6. IronPDF 实例列表将出现,选择最新版本并按安装。

    使用 iTextSharp VS IronPDF 在 C# 中提取 PDF 中的文本 图 2 - IronPDF 安装

    就这样,IronPDF 安装完毕,可以在您的 C# 项目中使用了。

安装 iTextSharp 库

安装 iTextSharp PDF 库与安装 IronPDF 相同。 重复上述步骤,只需在浏览窗口中搜索 "iTextSharp "而不是 IronPDF,从软件包列表中选择并点击安装,即可在项目中集成 iTextSharp PDF 库。

使用 iTextSharp VS IronPDF 在 C# 中提取 PDF 中的文本 图 3 - iTextSharp

使用 IronPDF 从 PDF 文件中提取文本

IronPDF 提供从 PDF 文件中提取文本的功能,可根据特定页面自动提取文本或从所有 PDF 文件中提取文本。 在下面的代码示例中,我们将看到如何从 PDF 文档示例的特定页面中提取文本。

using IronPdf;
using System;
using PdfDocument PDF = PdfDocument.FromFile("Watermarked.pdf");
string Text = PDF.ExtractTextFromPage(1);
Console.Write(Text);
using IronPdf;
using System;
using PdfDocument PDF = PdfDocument.FromFile("Watermarked.pdf");
string Text = PDF.ExtractTextFromPage(1);
Console.Write(Text);
Imports IronPdf
Imports System
Private PdfDocument As using
Private Text As String = PDF.ExtractTextFromPage(1)
Console.Write(Text)
VB   C#

上述代码使用 C# 中的 IronPDF 库从 PDF 文件中提取文本并显示在控制台中。 首先,导入必要的命名空间,包括 IronPDF 和 System。 然后,代码使用 FromFile 方法将名为 "Watermarked.pdf "的 PDF 文档加载到 PdfDocument 对象中。 随后,它会使用 ExtractTextFromPage 从 PDF 的第二页提取文本,并将其存储在名为 Text 的字符串变量中。 最后,使用 Console.Write 将提取的文本显示在控制台中。

使用 iTextSharp VS IronPDF 在 C# 中提取 PDF 中的文本 图 4 - 输出

使用 iTextSharp 库从 PDF 文件中提取文本

您还可以使用 iTextSharp 从 PDF 文件中提取文本,下面是 iTextSharp 库的一个示例。

using System;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;

namespace PDFApp2
{
    class Program
    {
        static void Main(string [] args)
        {
            string filePath = @"C:\Users\buttw\OneDrive\Desktop\highlighted PDF.pdf";
            string outPath = @"C:\Users\buttw\OneDrive\Desktop\name.txt";
            int pagesToScan = 2;

            string strText = string.Empty;
            try
            {
                PdfReader reader = new PdfReader(filePath);
                for (int page = 1; page <= pagesToScan; page++) 
                {
                    ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
                    strText = PdfTextExtractor.GetTextFromPage(reader, page, its);

                    strText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(strText)));
                    string [] lines = strText.Split('\n');
                    foreach (string line in lines)
                    {
                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(outPath, true))
                        {
                            file.WriteLine(line);
                        }
                    }
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }
        }
    }
}
using System;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;

namespace PDFApp2
{
    class Program
    {
        static void Main(string [] args)
        {
            string filePath = @"C:\Users\buttw\OneDrive\Desktop\highlighted PDF.pdf";
            string outPath = @"C:\Users\buttw\OneDrive\Desktop\name.txt";
            int pagesToScan = 2;

            string strText = string.Empty;
            try
            {
                PdfReader reader = new PdfReader(filePath);
                for (int page = 1; page <= pagesToScan; page++) 
                {
                    ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
                    strText = PdfTextExtractor.GetTextFromPage(reader, page, its);

                    strText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(strText)));
                    string [] lines = strText.Split('\n');
                    foreach (string line in lines)
                    {
                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(outPath, true))
                        {
                            file.WriteLine(line);
                        }
                    }
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }
        }
    }
}
Imports Microsoft.VisualBasic
Imports System
Imports System.Text
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser

Namespace PDFApp2
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim filePath As String = "C:\Users\buttw\OneDrive\Desktop\highlighted PDF.pdf"
			Dim outPath As String = "C:\Users\buttw\OneDrive\Desktop\name.txt"
			Dim pagesToScan As Integer = 2

			Dim strText As String = String.Empty
			Try
				Dim reader As New PdfReader(filePath)
				For page As Integer = 1 To pagesToScan
					Dim its As ITextExtractionStrategy = New iTextSharp.text.pdf.parser.LocationTextExtractionStrategy()
					strText = PdfTextExtractor.GetTextFromPage(reader, page, its)

					strText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(strText)))
					Dim lines() As String = strText.Split(ControlChars.Lf)
					For Each line As String In lines
						Using file As New System.IO.StreamWriter(outPath, True)
							file.WriteLine(line)
						End Using
					Next line
				Next page
				reader.Close()
			Catch ex As Exception
				Console.Write(ex)
			End Try
		End Sub
	End Class
End Namespace
VB   C#

所提供的代码是一个 C# 程序,它使用 iTextSharp 库从 PDF 文档的特定页面中提取文本并保存到文本文件中。首先,我们导入了必要的命名空间,包括 System.TextiTextSharp.text.pdf 和 iTextSharp.text.pdf.parser。 程序会指定文件名、输入 PDF 文件路径、输出文本文件路径和要扫描的页数。 然后,它利用 iTextSharp 的 "PDFReader "来读取 PDF 文件。对于每个指定页面,它都会使用 iTextSharp 的新 "LocationTextExtractionStrategy "来提取文本,并将编码转换为 UTF-8。提取的文本被分割成行,PDF 代码中新的 StringBuilder 文本将按正确的方向工作。 过程中遇到的任何异常都会被捕获并显示在控制台中。 最后,程序关闭 "PdfReader"。

使用 iTextSharp VS IronPDF 在 C# 中提取 PDF 文本 图 5 - 使用 iTextSharp 提取文本

结论

iTextSharp 是一个功能强大、用途广泛的 C# 库,它彻底改变了 PDF 操作,实现了无缝内容创建、修改和提取。 其强大的功能使其成为开发人员的首选解决方案,使他们能够生成复杂的 PDF 并有效管理 PDF 中的文本内容。 此外,.NET 领域的另一个著名库 IronPDF 提供了一套全面的 PDF 生成和图像处理工具,增强了开发人员从各种来源轻松创建、修改和渲染高质量 PDF 的能力。 在比较这两个 PDF 库时,IronPDF 因其完善的文档和易于使用的 API 而处于领先地位,它还只需几行代码就能完成所有文本提取,而使用 iTextSharp 则必须编写冗长而复杂的代码,并且需要对库和 C&num 有深入的了解;

了解更多IronPDF 的功能如需了解更多信息及其功能,请访问官方网站。 使用 IronPDF 提取文本的完整教程可在此找到IronPDF 文本提取教程. 有关 IronPDF 和 iTextSharp 的完整教程,请访问IronPDF 与 iTextSharp 对比.

< 前一页
iTextSharp 文档评审与 IronPDF 比较
下一步 >
IronPDF 与 Puppeteer C#:比较

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >