Text

Text

Cette page couvre la lecture du texte à partir d’une page, à trois niveaux de détail : texte brut, blocs de mise en page structurés et glyphes positionnés individuellement. Pour écrire du texte sur une page, voir Core API and Core API.


Extraction du texte brut

Page.GetText() renvoie le texte brut assemblé de la page, dans l’ordre de lecture. C’est le moyen le plus simple de confirmer quel texte une page contient réellement — par exemple, après avoir aplati un champ ou appliqué une rédaction.

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

Texte structuré

Page.GetStructuredText() extrait le texte positionné regroupé en lignes (par ligne de base) et en blocs de type paragraphe (par espace vertical et alignement du bord gauche), renvoyant TextBlock[] — utile lorsque vous avez besoin de mise en page, pas seulement d’une chaîne plate.


Introspection au niveau des glyphes

visitContent(doc, page, visitor) parcourt les flux de contenu d’une page — y compris dans les Form XObjects — et appelle le gestionnaire correspondant sur visitor pour chaque glyphe, image ou tracé qu’il rencontre. Le gestionnaire glyph reçoit un GlyphEvent: le text du glyphe, son quad en espace dispositif, fontSize, color, et des champs de provenance tels que mcid (son élément de contenu marqué englobant, le cas échéant) et artifact (vrai lorsqu’il est dessiné à l’intérieur d’une portée /Artifact).

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);

Conseils et bonnes pratiques

  • Utilisez Page.GetText() pour une vérification rapide de présence/absence; utilisez visitContent() avec un gestionnaire glyph lorsque vous avez besoin de la position exacte, de la taille de police ou de la couleur de chaque glyphe.
  • Vérifiez GlyphEvent.artifact pour ignorer le contenu décoratif (éléments de page, arrière-plans) qu’un document balisé marque comme /Artifact plutôt que comme du vrai contenu.
  • GlyphEvent.mcid lie un glyphe à son élément de structure enveloppant lorsque le document est balisé — combinez avec Structure pour parcourir du glyphe à son élément logique.
  • Page.GetStructuredText() regroupe les glyphes en blocs pour vous; utilisez visitContent() directement uniquement lorsque vous avez besoin de détails par glyphe que GetStructuredText() n’expose pas.

Problèmes courants

ProblèmeCauseCorrection
Page.GetText() manque du texte qui est visible sur la pageLe texte a été dessiné sous forme de chemins vectoriels ou d’une image plutôt que d’opérateurs réels d’affichage de glyphesUtilisez visitContent() avec un gestionnaire path / image pour confirmer quel type de contenu l’a réellement dessiné
Le gestionnaire glyph de visitContent() se déclenche pour le texte décoratif en arrière-planGlyphEvent.artifact n’a pas été vérifiéIgnorer les événements où e.artifact est true
Le texte extrait est hors de l’ordre de lecture visuelL’assemblage simple de GetText() ne reconstruit pas la mise en page à plusieurs colonnesUtilisez Page.GetStructuredText(), qui regroupe le texte en blocs sensibles à la mise en page

FAQ

Quelle est la différence entre GetText et GetStructuredText?

GetText() renvoie une chaîne plate du texte assemblé de la page. GetStructuredText() renvoie TextBlock[] — texte regroupé en lignes et blocs de type paragraphe selon la ligne de base et la mise en page, utile lorsque la position compte.

Comment obtenir la position exacte et la taille de police de chaque caractère?

Appelez visitContent(doc, page, { glyph: (e) => ... }). Chaque GlyphEvent contient le text du glyphe, l’espace dispositif quad, fontSize, color, et la ligne de base angle.

Puis-je déterminer si un morceau de texte est du contenu réel ou une décoration?

Oui — GlyphEvent.artifact est true lorsque le glyphe a été dessiné à l’intérieur d’une portée de contenu marqué /Artifact, la même distinction que Document.AutoTag() utilise pour décider quoi marquer.

L’extraction de texte voit-elle le contenu à l’intérieur des Form XObjects?

Oui — visitContent() pénètre dans les Form XObjects dans le cadre de son parcours, de sorte que les glyphes dessinés via un formulaire réutilisé sont toujours visités.


API Reference Résumé

Classe/MéthodeDescription
Page.GetText()Le texte brut assemblé de la page, dans l’ordre de lecture
Page.GetStructuredText()Texte regroupé en lignes et blocs de type paragraphe (TextBlock[])
visitContent()Parcourez le contenu d’une page, en émettant des événements glyph/image/chemin avec provenance
GlyphEventUn glyphe positionné : text, quad, fontSize, color, mcid, artifact

Voir aussi

 Français