Jak wyodrębnić tekst z plików PDF w .NET
Jak wyodrębnić tekst z plików PDF w .NET
Ten przewodnik obejmuje wyodrębnianie tekstu ze stron PDF przy użyciu absorber API.
Wymagania wstępne
| Wymaganie | Szczegół |
|---|---|
| Środowisko uruchomieniowe | .NET 8.0 lub nowszy |
| Pakiet | dotnet add package Aspose.Pdf.Foss |
Wyodrębnij cały tekst z strony
TextAbsorber zbiera cały tekst na stronie w pojedynczy ciąg znaków. Utwórz
instancję, przekaż ją do Page.Accept i odczytaj wynik z właściwości Text.
Jest to najprostsze podejście, gdy potrzebujesz wyjścia w postaci czystego tekstu bez informacji o położeniu.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Wyodrębnij ustrukturyzowane fragmenty tekstu
Kiedy potrzebujesz metadanych pozycji, czcionki i rozmiaru wraz z tekstem, użyj TextFragmentAbsorber zamiast tego. Każdy TextFragment udostępnia swoje współrzędne ograniczające poprzez właściwość 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})");
}Wyszukiwanie przy użyciu wyrażenia regularnego
Przekaż wzorzec wyrażenia regularnego do TextFragmentAbsorber, aby znaleźć pasujący tekst na wszystkich
stronach. Jest to przydatne do wyszukiwania numerów telefonów, dat lub innych
wzorców danych strukturalnych w dokumencie.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);Kluczowe klasy
| Klasa | Cel |
|---|---|
TextAbsorber | Wyodrębnij cały tekst jako ciąg znaków |
TextFragmentAbsorber | Wyodrębnianie tekstu strukturalnego |
TextFragment | Tekst z pozycją i czcionką |
FontRepository | Wyszukiwanie czcionki |