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:
TextFragmentAbsorberkada vam trebaju podaci o položaju i font; koristitiTextAbsorberza izvlačenje iz jednostavnog teksta. - Prihvati absorber na jednoj stranici za brže rezultate ili na drugom mjestu.
doc.Pagesda 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.IsEmbeddedU 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
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
| Izvadeni tekst je izmijenjen. | PDF koristi nestandardno kodiranje ili CID font maping | Provjerite uklop font; neki skenirani PDF-ovi zahtijevaju OCR |
| Ne pronađen tekstni fragment | Sadrž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 nula | Izvor fontova nedostaje u PDF-u | Provjeriti 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 / metoda | Opisivanje |
|---|---|
TextAbsorber | Izvuči sve tekst kao jedan niz . |
TextFragmentAbsorber | Izvaditi strukturirane tekstne fragmente s podacima o položaju i fontovima. |
TextFragment | Tekst koji se pokreće s pozicijom, tekstom i segmentima. |
TextFragment.Text | Izvadeni tekstni niz |
TextFragment.Position | Koordinate na stranici |
TextFragment.TextState | Informacije o fontovima, veličini i boji |
TextFragment.Segments | Podtrčanje unutar fragmenta |
TextParagraph | Izgradnja za višeradne blokove teksta |
TextState | Ime, veličina, boja i stil svojstva font |
FontRepository | Statični font pretraživanje i učitavanje |
FontRepository.FindFont | Pronađite font po imenu |