Hur man extraherar text från PDF-filer i .NET
Hur man extraherar text från PDF-filer i .NET
Den här guiden täcker textutdrag från PDF‑sidor med absorber API.
Förutsättningar
| Krav | Detalj |
|---|---|
| Körmiljö | .NET 8.0 eller senare |
| Paket | dotnet add package Aspose.Pdf.Foss |
Extrahera all text från en sida
TextAbsorber samlar all text på en sida till en enda sträng. Skapa en
instans, skicka den till Page.Accept och läs resultatet från Text‑egenskapen.
Detta är det enklaste tillvägagångssättet när du behöver rentextutdata utan positionsinformation.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Extrahera strukturerade textfragment
När du behöver position, teckensnitt och storleksmetadata tillsammans med texten, använd TextFragmentAbsorber istället. Varje TextFragment exponerar sina avgränsande koordinater genom egenskapen 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})");
}Sök med ett reguljärt uttryck
Skicka ett regex‑mönster till TextFragmentAbsorber för att hitta matchande text på
alla sidor. Detta är användbart för att lokalisera telefonnummer, datum eller andra
strukturerade datamönster i ett dokument.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);Nyckelklasser
| Klass | Syfte |
|---|---|
TextAbsorber | Extrahera all text som en sträng |
TextFragmentAbsorber | Strukturerad textutvinning |
TextFragment | Text med position och teckensnitt |
FontRepository | Teckensnittssökning |