产品比较

在 C# 中使用 iTextSharp 阅读 PDF 文档的方法:

发布 2024年四月3日
分享:

在当今的数字时代、 便携式文档格式(PDF) 由于其平台独立性和格式一致性,PDF 文件已成为文档交换的标准。对于使用 C# 的开发人员来说,iTextSharp 库是与 PDF 文件无缝交互的强大库。在本文中,我们将学习使用 iTextSharp 的基本步骤,并提供全面的指南,帮助你发掘这个多功能库的潜力。

如何在 C&num 中读取 PDF 文档;使用 iTextSharp

1.打开或创建 Visual Studio 项目。

2.安装 iTextSharp 库。

3.添加必要的命名空间

4.选择要读取的 PDF 文件。

5.创建 PDF 阅读器实例。

6.创建 PDF 文档实例。

7.循环浏览文档的每一页,提取文本。

8.在控制台打印提取的文本。

itextSharp 是什么?

iText 7iTextSharp 的前身是 iTextSharp,它是一个功能强大、用途广泛的 Java 和 .NET 库,可用于创建、处理和提取 PDF 文档中的内容。它提供了一套全面的功能,包括文本和图像处理、表格填充、数字签名和水印。无论是生成发票、报告还是交互式表单,iText 7 都能让开发人员高效地处理 PDF 文档。

阅读 PDF 文件

让我们讨论一些用 C# 阅读 PDF 文件的示例。要开始学习,您需要在项目中添加 iTextSharp 库

安装 iTextSharp PDF 库

使用 Visual Studio 打开 C# 项目。在顶部菜单中,转到 "查看",然后选择 "包管理器控制台"。这将在 Visual Studio 窗口底部打开 "软件包管理器控制台"。

在 "软件包管理器控制台 "中,确保 "默认项目 "下拉菜单设置为要安装 iTextSharp 软件包的项目。

运行以下命令安装 iTextSharp 库:

Install-Package itext7

该命令从 NuGet 软件包库中获取最新版本的 iTextSharp,并将其安装到你的项目中。等待安装过程完成。软件包管理器控制台将显示有关安装进度的信息。

如何使用 iTextSharp 在 C# 中阅读 PDF 文档::图 1 - 使用 Visual Studio 中的 NuGet 软件包管理器控制台安装 iTextSharp,并添加以下命令:"Install-package itext7"。

使用 iTextSharp PDF 阅读器阅读 PDF 文档

我将使用以下 PDF 文档作为本示例的输入。

如何使用 iTextSharp 在 C# 中读取 PDF 文档::图 2 - 原始 PDF 文档

在开始之前,请添加以下命名空间:

using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports System.Text
VB   C#

以下代码将读取上述 PDF 文件,提取内容,并将提取的内容打印到控制台。

public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
Public Shared Sub Main(ByVal args() As String)
	Dim text As New StringBuilder()
	Dim fileName As String = "D:/What_is_pdf.pdf"
	If File.Exists(fileName) Then
		Using pdfReader As New PdfReader(fileName)
			Using pdfDocument As New PdfDocument(pdfReader)
				Dim page As Integer = 1
				Do While page <= pdfDocument.GetNumberOfPages()
					Dim currentText As String = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page))
					currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)))
					text.Append(currentText)
					page += 1
				Loop
			End Using
		End Using
	End If
	Console.WriteLine(text.ToString())
End Sub
VB   C#

上述源代码读取 PDF 文件,提取每一页的文本,将其转换为 UTF-8,然后将整个文本内容打印到控制台。这是一个如何使用 C# 中的 iTextSharp 库从 PDF 文件中提取文本的基本示例。

代码解释

1.文件路径和初始化

代码首先声明了一个名为textStringBuilder,用于积累从 PDF 中提取的文本。代码还定义了一个字符串变量 fileName,其中包含文件位置的路径。在本例中,PDF 文件位于 "D:/What_is_pdf.pdf"。

2.文件存在性检查

如果 (文件存在(文件名))** 条件检查指定文件是否存在。如果文件存在,则执行后面的代码块。

3.PDF 文件处理

if块中,它使用PdfReader对象打开 PDF 文件。然后,使用 PdfReader 创建一个 PdfDocument 文件实例。for 循环遍历 PDF 文档的每一页。

4.从 PDF 文件中提取文本

对于每个 PDF 页面,它会使用类 PdfTextExtractorGetTextFromPage 提取文本内容(pdfDocument.GetPage(页码)) 方法。提取的文本最初使用默认编码。

然后使用 Encoding.UTF8.GetString 将文本从默认编码转换为 UTF-8 编码。(ASCIIEncoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(当前文本))).然后将转换后的文本添加到文本字符串中。

5.显示累积文本

最后,使用 Console.WriteLine 打印累计文本() 方法。

输出

提取的 PDF 文本输出如下:

如何使用 iTextSharp 在 C# 中读取 PDF 文档::图 3 - 控制台输出:使用 iTextSharp 从 PDF 文档 "What_is_pdf.pdf" 中提取文本,并在控制台中显示为纯文本。

这样,我们就可以读取 PDF 文件的内容。这种方法比较复杂,而且效率较低,因为要创建多个实例。让我们来探索另一种更友好、更高效的方法。

IronPDF 简介

IronPDF 是一个多功能、高效的 C# 库,旨在简化和增强 创建, 操控渲染 在 .NET 应用程序中使用 PDF 文档。IronPDF 使开发人员能够将 PDF 相关功能无缝集成到他们的项目中,并注重易用性和丰富的功能。该库支持广泛的 PDF 操作,包括从零开始创建 PDF 文档、转换 PDF 文档、将 PDF 文档转换为 PDF 文档、将 PDF 文档转换为 PDF 文档、将 PDF 文档转换为 PDF 文档转换为 PDF 文档。 将 HTML 内容转换为 PDF提取文本和图像 从现有的 PDF 文件中生成。IronPDF 直观的应用程序接口(API)为开发人员提供了友好的用户体验,使他们能够毫不费力地生成动态和交互式 PDF。无论是添加水印、注释还是加密文档,IronPDF 都能让开发人员根据自己的具体要求定制 PDF。作为一种可靠的解决方案,IronPDF 在从报表生成、文档管理到网络开发等各种应用中都发挥了重要作用,它提供了一套全面的工具,可在 .NET 环境中简化与 PDF 相关的任务。

安装 IronPDF 库

在 Visual Studio 中使用软件包管理器控制台

使用 NuGet 软件包管理器控制台,使用以下命令将 IronPDF 下载到您的项目中。

Install-Package IronPdf

此命令将下载并安装 IronPDF NuGet 软件包连同其依赖项一起添加到项目中。

如何使用 iTextSharp 在 C# 中读取 PDF 文档::图 4 - 使用 NuGet 软件包管理器控制台安装 IronPDF 库,输入以下命令:"Install-package IronPDF";

使用 NuGet 管理解决方案软件包

在 NuGet 的浏览选项卡中,搜索 "IronPDF "库并点击安装。

如何使用 iTextSharp 在 C# 中读取 PDF 文档::图 5 - 在 NuGet Package Manager 的搜索栏中搜索 "IronPDF",使用 Manage NuGet Package for Solutions 安装 IronPDF,然后选择项目并点击 Install(安装)按钮。

使用 IronPDF 阅读 PDF 文件

现在,让我们使用 IronPDF.以下代码将从输入的 PDF 文档中提取文本。

using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
Imports IronPdf
Public Shared Sub Main(ByVal args() As String)
	Dim pdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
	 Dim text As String = pdfDocument.ExtractAllText()
	Console.WriteLine(text)
End Sub
VB   C#

上述代码读取名为 "What_is_pdf.pdf "的 PDF 文件,从中提取所有文本内容,并将提取的文本显示在控制台中

代码解释

1.加载 PDF 文档

代码首先从名为 "What_is_pdf.pdf "的文件中加载 PDF 文档。它使用 PdfDocument.FromFile() 从指定文件创建PDFDocument对象的方法。

2.提取所有文本

接下来,它会从加载的 PDF 文档中提取所有文本内容。pdfDocument.ExtractAllText() 方法以单个字符串的形式返回 PDF 中的全部文本。

3.显示提取的文本

最后,提取的文本存储在 text 变量中。代码使用 Console.WriteLine 将提取的文本打印到控制台(文本) 方法。

输出

如何使用 iTextSharp 在 C# 中读取 PDF 文档::图 6 - 控制台输出:使用 IronPDF 从 PDF 文档"What_is_pdf.pdf"中提取文本,并以纯文本形式显示在控制台中。

IronPDF 还提供了从 PDF 文件中逐页提取文本的方法。

逐页阅读 PDF 文件

以下代码将使用 IronPDF 逐页读取 PDF 文档。

using IronPdf;
 public static void Main(string [] args)
 {
     StringBuilder sb = new StringBuilder();
     using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     for (int index = 0; index < pdf.PageCount; index++)
     {
         sb.Append (pdf.ExtractTextFromPage(index));
     }
     Console.WriteLine(sb.ToString());
 }
using IronPdf;
 public static void Main(string [] args)
 {
     StringBuilder sb = new StringBuilder();
     using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     for (int index = 0; index < pdf.PageCount; index++)
     {
         sb.Append (pdf.ExtractTextFromPage(index));
     }
     Console.WriteLine(sb.ToString());
 }
Imports IronPdf
 Public Shared Sub Main(ByVal args() As String)
	 Dim sb As New StringBuilder()
	 Using pdf As PdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
		 For index As Integer = 0 To pdf.PageCount - 1
			 sb.Append(pdf.ExtractTextFromPage(index))
		 Next index
		 Console.WriteLine(sb.ToString())
	 End Using
 End Sub
VB   C#

上述代码读取名为 "What_is_pdf.pdf "的 PDF 文件,提取每一页的文本内容,并将合并后的文本打印到控制台。

代码解释

1.初始化和 PDF 加载

创建了一个名为 sb 的 StringBuilder,用于积累从 PDF 中提取的文本。using 语句确保了资源的妥善处置。通过使用 PdfDocument.FromFile 方法从 "D:/What_is_pdf.pdf "路径加载 PDF 文件,创建名为 PDF 的 PdfDocument 对象。

2.从网页中提取文本

for 循环遍历加载的 PDF 文档的每一页。对于每一页 (以指数为索引)使用 pdf.ExtractTextFromPage 提取文本内容(索引).提取的文本将通过 sb.Append 附加到 StringBuilder 中。().

3.显示累积文本

最后,使用 sb.ToString 将累积文本转换为单个字符串().使用 Console.WriteLine 将整个提取文本打印到控制台() 方法。

结论

总之,使用 C# 处理 PDF 需要了解一些基本要素,如字节数组、文档信息字典、交叉引用表、新文件实例和静态字节。第一个使用 iTextSharp 的代码展示了一种功能性方法,而第二个使用 IronPDF 的代码则提供了一种更简单、更高效的方法。 IronPDFIronPDF 易于使用的 API 简化了涉及交叉引用表、页面字典和间接引用的任务。无论是仅处理文档信息中的 xref,还是处理安全 PDF 的私钥方面,IronPDF 都是一个多功能解决方案。

开发人员寻求探索 IronPDF.IronPDF 将客户满意度放在首位,确保开发人员在 PDF 相关任务中找到价值和效率,使其成为寻找可靠且功能丰富的 PDF 库的用户的不二之选。

有关如何使用 IronPDF 的更多信息,请参阅以下内容 文献资料 链接。

< 前一页
如何使用iTextSharp在C#中向PDF添加页码
下一步 >
iTextSharp读取PDF替代方案(开发人员教程)

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

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