Izvadba teksta

Izvadba teksta

Aspose.PDF FOSS for .NET provides several mechanisms for extracting text from PDF stranice. TextFragmentAbsorber je primarni alat skenira sadržaj stranice i strukturirani povratni iznos TextFragment objekte s pozicijom, fontom i stilom Informacije.


Izvadba osnovnog teksta

TextAbsorber izvlači sav tekst s stranice ili dokumenta kao jedan niz.

using var doc = Document.Open(pdfBytes);

var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);

string pageText = absorber.Text;

Izvlačenje tekstnih fragmenata

TextFragmentAbsorber Svaka od njih daje strukturirane rezultate. TextFragment uključuje izveden tekst, njegovo mjesto na stranici i detalje o fontovima.

using var doc = Document.Open(pdfBytes);

var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Text: {fragment.Text}");
    Console.WriteLine($"Position: ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
    Console.WriteLine($"Font: {fragment.TextState.Font.FontName}");
}

Traženje s redovnim izrazima

Predajte regex obrazac na: TextFragmentAbsorber da pronađe određeni tekst.

var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);  // Search all pages

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

Tekstni segmenti

Svaki od njih. TextFragment može sadržavati više: TextSegment objekte kada tekst Razlikuje se od različitih fontova.

foreach (var fragment in absorber.TextFragments)
{
    foreach (var segment in fragment.Segments)
    {
        Console.WriteLine($"Segment: {segment.Text}, Font: {segment.TextState.Font.FontName}");
    }
}

Upravljanje fontovima

FontRepository pruža metode za pronalaženje i učitavanje fontova.

var font = FontRepository.FindFont("Helvetica");

Izgradnja tekstnih stavka

TextParagraph omogućuje izgradnju višeradnih blokova teksta za unosa u stranicu.

var paragraph = new TextParagraph();
paragraph.AppendLine(new TextFragment("First line"));
paragraph.AppendLine(new TextFragment("Second line"));

Savjeti i najbolje prakse

  • Upotreba: TextFragmentAbsorber kada vam trebaju podaci o položaju i font; koristiti TextAbsorber za izvlačenje iz jednostavnog teksta.
  • Prihvati absorber na jednoj stranici za brže rezultate ili na drugom mjestu. doc.Pages da pretraži cijeli dokument.
  • Ulagom je pretraživanje redovnih izraza osjetljivo na velike i važne slova korištenje (?i) Prefiks za primjenjivanje neosjetljivih na slova.
  • Čekaj. TextState.Font.IsEmbedded U slučaju da je to moguće, mora se koristiti samo jedan od sljedećih načina:.
  • Za velike dokumente, obradi stranice jednu po jednu kako bi se upravljalo korištenjem memorije.

Zajednički problemi

IzdavanjeUzrokPopraviti
Izvadeni tekst je izmijenjen.PDF koristi nestandardno kodiranje ili CID font mapingProvjerite uklop font; neki skenirani PDF-ovi zahtijevaju OCR
Ne pronađen tekstni fragmentSadržaj stranice je slika, a ne tekst.Koristite OCR alat za pretvaranje stranica sliku u tekst prvo
Regex ne vraća odgovarajuće podatke.Uzorak ne uzima u obzir bijeli prostor koji je ubačen PDF tekstnim rasporedom.Normalizirati bijeli prostor ili koristiti lakši uzorak
TextState.Font je nulaIzvor fontova nedostaje u PDF-uProvjeriti valjanost prilikom provjere svojstava fontova

FAQ

Mogu li izvući tekst iz određenog područja stranice?

Da, postavljeno. TextFragmentAbsorber.TextSearchOptions.Rectangle da ograniči pretragu. na određeno područje stranice.

Da li ekstrakcija teksta održava red čitanja?

Biblioteka vraća tekst u redoslijedu sadržaja. Za postavke s više stupnica možda ćete morati sortirati fragmente po položaju.

Mogu li istisnuti tekst sa svih stranica odjednom?

Da, nazovi. doc.Pages.Accept(absorber) da pretraži svaku stranicu u dokumentu.


Svrha referentnog API-a

Klasa / metodaOpisivanje
TextAbsorberIzvuči sve tekst kao jedan niz .
TextFragmentAbsorberIzvaditi strukturirane tekstne fragmente s podacima o položaju i fontovima.
TextFragmentTekst koji se pokreće s pozicijom, tekstom i segmentima.
TextFragment.TextIzvadeni tekstni niz
TextFragment.PositionKoordinate na stranici
TextFragment.TextStateInformacije o fontovima, veličini i boji
TextFragment.SegmentsPodtrčanje unutar fragmenta
TextParagraphIzgradnja za višeradne blokove teksta
TextStateIme, veličina, boja i stil svojstva font
FontRepositoryStatični font pretraživanje i učitavanje
FontRepository.FindFontPronađite font po imenu

Također pogledajte:

 Hrvatski