Як витягнути текст з 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 | Пошук шрифту |