Wie man Text aus PDFs in .NET extrahiert
Wie man Text aus PDFs in .NET extrahiert
Dieser Leitfaden behandelt die Textextraktion aus PDF‑Seiten mithilfe der absorber API.
Voraussetzungen
| Anforderung | Detail |
|---|---|
| Laufzeit | .NET 8.0 oder höher |
| Paket | dotnet add package Aspose.Pdf.Foss |
Extrahiere den gesamten Text von einer Seite
TextAbsorber sammelt allen Text auf einer Seite in einem einzigen String. Erstellen Sie eine
Instanz, übergeben Sie sie an Page.Accept und lesen Sie das Ergebnis aus der Text‑Eigenschaft.
Dies ist der einfachste Ansatz, wenn Sie reine Textausgabe ohne Positionsinformationen benötigen.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Strukturierte Textfragmente extrahieren
Wenn Sie Positions‑, Schriftart‑ und Größen‑Metadaten zusammen mit dem Text benötigen, verwenden Sie stattdessen TextFragmentAbsorber. Jeder TextFragment stellt seine Begrenzungskoordinaten über die Eigenschaft Position bereit.
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})");
}Suche mit einem regulären Ausdruck
Übergeben Sie ein Regex‑Muster an TextFragmentAbsorber, um passenden Text auf
allen Seiten zu finden. Dies ist nützlich, um Telefonnummern, Daten oder
andere strukturierte Datenmuster in einem Dokument zu lokalisieren.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);Schlüsselklassen
| Klasse | Zweck |
|---|---|
TextAbsorber | Extrahiere gesamten Text als Zeichenkette |
TextFragmentAbsorber | Strukturierte Textextraktion |
TextFragment | Text mit Position und Schriftart |
FontRepository | Schriftartsuche |