Як витягнути текст з PDF у .NET

Як витягнути текст з PDF у .NET

Як витягнути текст з PDF у .NET

У цьому посібнику розглядається вилучення тексту з PDF‑сторінок за допомогою absorber API.


Вимоги

ВимогаДеталь
Середовище виконання.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})");
}

Пошук за допомогою регулярного виразу

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

Див. також

 Українська