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änd visitContent() med en glyph-hanterare när du behöver varje glyfs exakta position, teckenstorlek eller färg.
  • Kontrollera GlyphEvent.artifact för att hoppa över dekorativt innehåll (sidmöbler, bakgrunder) som ett taggat dokument markerar som /Artifact snarare än verkligt innehåll.
  • GlyphEvent.mcid lä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änd visitContent() direkt endast när du behöver per-glyf-detaljer som GetStructuredText() inte exponerar.

Vanliga problem

ProblemOrsakÅtgärd
Page.GetText() saknar text som tydligt finns på sidanTexten ritades som vektorbanor eller en bild snarare än med riktiga glyph-show operatorsAnvä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 bakgrundstextGlyphEvent.artifact kontrollerades inteHoppa över händelser där e.artifact är true
Extraherad text är utanför den visuella läsordningenEnkel GetText() assembly återger inte flerkolumnslayoutAnvä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/MetodBeskrivning
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
GlyphEventEn placerad glyf: text, quad, fontSize, color, mcid, artifact

Se även

 Svenska