Text
Text
Den här sidan beskriver hur man läser text tillbaka från en sida, på tre detaljnivåer: ren text, strukturerade layoutblock och individuella placerade glyfer. För att skriva text på en sida, se Kärna API and Kärna API.
Extrahera vanlig text
Page.GetText() returnerar sidans sammansatta vanliga text, i läsordning. Det är det enklaste sättet att bekräfta vilken text en sida faktiskt innehåller — till exempel efter att ha plattat ett fält eller applicerat en redigering.
const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));Strukturerad text
Page.GetStructuredText() extraherar placerad text grupperad i rader (efter baslinje) och stycke-liknande block (efter vertikalt avstånd och vänsterkantjustering), och returnerar TextBlock[] — användbart när du behöver layout, inte bara en platt sträng.
Introspektion på glyfnivå
visitContent(doc, page, visitor) går igenom en sidas innehållsströmmar — inklusive Form XObjects — och anropar den matchande hanteraren på visitor för varje glyf, bild eller bana den stöter på. glyph-hanteraren får en GlyphEvent: glyfens text, dess enhetsrymds quad, fontSize, color, och proveniensfält såsom mcid (dess omgivande markerade innehållselement, om någon) och artifact (sant när den ritas inom ett /Artifact-omfång).
import { visitContent } from '@asposefoss/pdf';
let glyphCount = 0;
visitContent(doc, page, {
glyph: (e) => {
glyphCount++;
if (e.artifact) return; // skip decorative content
console.log(e.text, e.quad, e.color);
},
});
console.log('glyphs drawn:', glyphCount);Tips och bästa praxis
- Använd
Page.GetText()för en snabb närvaro-/frånvaro-kontroll; användvisitContent()med englyph-hanterare när du behöver varje glyfs exakta position, teckenstorlek eller färg. - Kontrollera
GlyphEvent.artifactför att hoppa över dekorativt innehåll (sidmöbler, bakgrunder) som ett taggat dokument markerar som/Artifactsnarare än verkligt innehåll. GlyphEvent.mcidlänkar en glyf tillbaka till dess omgivande strukturelement när dokumentet är taggat — kombinera med Structure för att gå från en glyf till dess logiska element.Page.GetStructuredText()grupperar glyfer i block åt dig; användvisitContent()direkt endast när du behöver per-glyf-detaljer somGetStructuredText()inte exponerar.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
Page.GetText() saknar text som tydligt finns på sidan | Texten ritades som vektorbanor eller en bild snarare än med riktiga glyph-show operators | Använd visitContent() med en path / image handler för att bekräfta vilken innehållstyp som faktiskt ritade det |
visitContent()s glyph handler avfyras för dekorativ bakgrundstext | GlyphEvent.artifact kontrollerades inte | Hoppa över händelser där e.artifact är true |
| Extraherad text är utanför den visuella läsordningen | Enkel GetText() assembly återger inte flerkolumnslayout | Använd Page.GetStructuredText(), som grupperar text i layoutmedvetna block |
FAQ
Vad är skillnaden mellan GetText och GetStructuredText?
GetText() returnerar en enkel platt sträng med sidans sammansatta text. GetStructuredText() returnerar TextBlock[] — text grupperad i rader och stycke-liknande block efter baslinje och layout, användbart när positionen är viktig.
Hur får jag den exakta positionen och teckenstorleken för varje tecken?
Anropa visitContent(doc, page, { glyph: (e) => ... }). Varje GlyphEvent bär glyphens text, device-space quad, fontSize, color och baseline angle.
Kan jag avgöra om en textbit är verkligt innehåll eller dekoration?
Ja — GlyphEvent.artifact är true när glyphen ritades inom ett /Artifact markerat-innehållsområde, samma distinktion som Document.AutoTag() använder när den bestämmer vad som ska märkas.
Ser textutdragning innehåll i Form XObjects?
Ja — visitContent() går in i Form XObjects som en del av sin traversering, så glyphs som ritas genom ett återanvänt formulär besöks fortfarande.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
Page.GetText() | Sidans sammansatta vanlig text, i läsordning |
Page.GetStructuredText() | Text grupperad i rader och paragrafliknande block (TextBlock[]) |
visitContent() | Gå igenom en sidas innehåll och avge glyph/image/path-händelser med proveniens |
GlyphEvent | En placerad glyf: text, quad, fontSize, color, mcid, artifact |