PDFium Delphi Component Docs

CharacterGenerated Propriété

Composant: TPdf  ·  Unit: PDFium
Renvoie True lorsque le caractère à l’index spécifié a été synthétisé par PDFium pendant l’extraction de texte plutôt que d’être dessiné explicitement par le flux de contenu de page. Les caractères synthétiques sont émis pour l’expansion de ligature, la coupure de mots conditionnelle et les heuristiques de frontière de mot/ligne afin que la recherche et la sélection globale se lisent naturellement

Syntax

property CharacterGenerated[Index: Integer]: Boolean; // read only

IndexIndex de caractère de base 0 sur la page courante, dans la plage 0 à CharacterCount - 1

Description

CharacterGenerated renvoie True lorsque le caractère à l’index spécifié a été généré en interne par PDFium plutôt que d’être présent dans le flux de contenu d’origine. Exemples typiques : décomposition de ligature (scinder un glyphe de ligature fi en f + i), l’espace final que PDFium insère entre des séquences de texte adjacentes séparées visuellement, et les caractères de saut de ligne injectés à la fin de chaque ligne visuelle

Les caractères générés n’ont pas de dessin propre dans le flux de contenu de la page ; leurs boîtes englobantes sont donc déduites des glyphes voisins. Méfiez-vous de leur position sur la page si vous avez besoin d’un hit-testing au pixel près : leur CharacterRectangle peut se réduire à une région de largeur ou de hauteur nulle

Pour les tâches telles que l’extraction verbatim exacte (signatures numériques, flux de travail hachage-du-texte, comparaison ASCII exacte avec le flux de contenu de page), filtrez d’abord les caractères générés. Pour la recherche de texte normale et la copie presse-papiers, le drapeau est purement informatif — PDFium a déjà inséré les caractères car les utilisateurs les attendent

Remarks

Example

// Build a verbatim string that contains only characters from the content stream
var
  I: Integer;
  S: WString;
begin
  S := '';
  for I := 0 to Pdf.CharacterCount - 1 do
    if not Pdf.CharacterGenerated[I] then
      S := S + Pdf.Character[I];
  Memo1.Text := S;
end;

See Also

Character, CharacterIsHyphen, CharacterMapError, CharacterRectangle, Text