Text

Text

Deze pagina behandelt het uitlezen van tekst uit een pagina, op drie detailniveaus: platte tekst, gestructureerde lay-outblokken en individuele gepositioneerde glyphs. Voor het schrijven van tekst op een pagina, zie Core API and Core API.


Platte tekst extraheren

Page.GetText() retourneert de samengestelde platte tekst van de pagina, in leesvolgorde. Het is de eenvoudigste manier om te bevestigen welke tekst een pagina daadwerkelijk bevat — bijvoorbeeld na het flattenen van een veld of het toepassen van een redactie.

const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));

Gestructureerde tekst

Page.GetStructuredText() extraheert gepositioneerde tekst gegroepeerd in lijnen (per basislijn) en alinea-achtige blokken (per verticale tussenruimte en uitlijning van de linkerrand), en retourneert TextBlock[] — handig wanneer je lay-out nodig hebt, niet alleen een platte tekenreeks.


Introspectie op glyph-niveau

visitContent(doc, page, visitor) doorloopt de contentstreams van een pagina — inclusief Form XObjects — en roept de bijbehorende handler aan op visitor voor elk glyph, afbeelding of pad dat hij tegenkomt. De glyph handler ontvangt een GlyphEvent: de text van het glyph, zijn device-space quad, fontSize, color, en provenance-velden zoals mcid (het omvattende marked-content element, indien aanwezig) en artifact (waar wanneer getekend binnen een /Artifact scope).

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 en best practices

  • Gebruik Page.GetText() voor een snelle aanwezigheids-/afwezigheidscontrole; gebruik visitContent() met een glyph handler wanneer je de exacte positie, lettergrootte of kleur van elk glyph nodig hebt.
  • Controleer GlyphEvent.artifact om decoratieve inhoud (pagina-meubilair, achtergronden) over te slaan die een getagd document markeert als /Artifact in plaats van echte inhoud.
  • GlyphEvent.mcid verbindt een glyph met zijn omvattende structuurelement wanneer het document getagd is — combineer met Structure om van een glyph naar zijn logische element te lopen.
  • Page.GetStructuredText() groepeert glyphs voor jou in blokken; gebruik visitContent() rechtstreeks alleen wanneer je per-glyph detail nodig hebt dat GetStructuredText() niet blootlegt.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Page.GetText() mist tekst die zichtbaar op de pagina staatDe tekst werd getekend als vectorpaden of een afbeelding in plaats van echte glyph-show operatorsGebruik visitContent() met een path / image handler om te bevestigen welk contenttype het daadwerkelijk heeft getekend
De glyph handler van visitContent() wordt geactiveerd voor decoratieve achtergrondtekstGlyphEvent.artifact was niet gecontroleerdSla gebeurtenissen over waar e.artifact true is
De geëxtraheerde tekst staat buiten de visuele leesvolgordeEenvoudige GetText() assemblage reconstrueert de meerkolomsindeling nietGebruik Page.GetStructuredText(), die tekst groepeert in lay-outbewuste blokken

FAQ

Wat is het verschil tussen GetText en GetStructuredText?

GetText() retourneert één platte tekenreeks van de samengevoegde tekst van de pagina. GetStructuredText() retourneert TextBlock[] — tekst gegroepeerd in regels en alinea-achtige blokken op basis van basislijn en lay-out, handig wanneer positie belangrijk is.

Hoe krijg ik de exacte positie en lettergrootte van elk teken?

Roep visitContent(doc, page, { glyph: (e) => ... }) aan. Elk GlyphEvent draagt de text van het glyph, apparaat-ruimte quad, fontSize, color en basislijn angle.

Kan ik bepalen of een stuk tekst echte inhoud of decoratie is?

Ja — GlyphEvent.artifact is true wanneer het glyph werd getekend binnen een /Artifact marked-content scope, dezelfde onderscheiding die Document.AutoTag() gebruikt bij het bepalen wat te taggen.

Ziet tekstextractie inhoud binnen Form XObjects?

Ja — visitContent() loopt Form XObjects binnen als onderdeel van zijn traversal, zodat glyphs die via een hergebruikt formulier worden getekend nog steeds worden bezocht.


API Reference Samenvatting

Klasse/MethodeBeschrijving
Page.GetText()De samengestelde platte tekst van de pagina, in leesvolgorde
Page.GetStructuredText()Tekst gegroepeerd in regels en alinea-achtige blokken (TextBlock[])
visitContent()Doorloop de inhoud van een pagina en genereer glyph-/afbeeldings-/pad-events met herkomst
GlyphEventÉén gepositioneerde glyph: text, quad, fontSize, color, mcid, artifact

Zie ook

 Nederlands