Как извлечь текст из 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 | Поиск шрифта |