Как извлечь текст из PDF в .NET

Как извлечь текст из PDF в .NET

Как извлечь текст из PDF в .NET

Это руководство охватывает извлечение текста со страниц PDF с использованием absorber API.


Требования

ТребованиеПодробности
Среда выполнения.NET 8.0 or later
Пакет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})");
}

Поиск с помощью регулярного выражения

Передайте шаблон regex в 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Поиск шрифта

См. также

 Русский