如何在 .NET 中从 PDF 提取文本

如何在 .NET 中从 PDF 提取文本

如何在 .NET 中提取 PDF 文本

本指南介绍如何使用 absorber API 从 PDF 页面提取文本。


先决条件

需求细节
运行时.NET 8.0 或更高版本
dotnet add package Aspose.Pdf.Foss

提取页面中的所有文本

TextAbsorber 将页面上的所有文本收集为一个字符串。创建一个
实例,将其传递给 Page.Accept,并从 Text 属性读取结果。
这是在需要不带位置信息的纯文本输出时最简单的方法。

using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);

提取结构化文本片段

当您需要在文本旁边获取位置、字体和大小的元数据时,
使用 TextFragmentAbsorber 替代。每个 TextFragment 通过 Position 属性公开其边界坐标。

var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"{fragment.Text} at ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
}

使用正则表达式搜索

将正则表达式模式传递给 TextFragmentAbsorber,以跨越
所有页面。此功能对于定位电话号码、日期或其他
结构化数据模式在文档中非常有用。

var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
    Console.WriteLine(f.Text);

关键类

目的
TextAbsorber将所有文本提取为字符串
TextFragmentAbsorber结构化文本提取
TextFragment带有位置和字体的文本
FontRepository字体查找

另请参阅

 中文