Kaip išgauti tekstą iš PDF dokumentų naudojant .NET
Kaip išgauti tekstą iš PDF dokumentų .NET
Šiame vadove nagrinėjamas teksto išgavimas iš PDF puslapių naudojant absorber API.
Būtinosios sąlygos
| Reikalavimas | Detalė |
|---|---|
| Vykdymo aplinka | .NET 8.0 arba vėlesnė |
| Paketas | dotnet add package Aspose.Pdf.Foss |
Ištraukti visą tekstą iš puslapio
TextAbsorber surenka visą tekstą puslapyje į vieną eilutę. Sukurkite
egzempliorių, perduokite jį Page.Accept, ir perskaitykite rezultatą iš Text savybės.
Tai yra paprasčiausias metodas, kai reikia gryno teksto išvesties be pozicinių
informacijos.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Išgauti struktūruotus teksto fragmentus
Kai jums reikia pozicijos, šrifto ir dydžio metaduomenų kartu su tekstu, naudokite TextFragmentAbsorber vietoje. Kiekvienas TextFragment atskleidžia savo ribinius koordinates per Position savybę.
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})");
}Ieškoti naudojant reguliarią išraišką
Perduokite regex šabloną TextFragmentAbsorber, kad rastumėte atitinkamą tekstą visose
puslapiuose. Tai naudinga ieškant telefono numerių, datų ar kitų struktūruotų duomenų šablonų dokumente.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);Pagrindinės klasės
| Klasė | Tikslas |
|---|---|
TextAbsorber | Išgauti visą tekstą kaip eilutę |
TextFragmentAbsorber | Struktūruoto teksto išgavimas |
TextFragment | Tekstas su pozicija ir šriftu |
FontRepository | Šrifto paieška |