PDFium Delphi Component Docs

CharacterGenerated Proprietà

Componente: TPdf  ·  Unità: PDFium
Restituisce True quando il carattere all'indice specificato è stato sintetizzato da PDFium durante l'estrazione del testo anziché essere disegnato esplicitamente dal content stream della pagina. I caratteri sintetici sono emessi per l'espansione delle legature, la sillabazione morbida e le euristiche dei confini di parola/linea affinché i risultati di ricerca e seleziona-tutto si leggano in modo naturale

Syntax

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

IndexIndice di carattere a base zero sulla pagina corrente, nell'intervallo da 0 a CharacterCount - 1

Description

CharacterGenerated restituisce True quando il carattere all'indice specificato è stato generato internamente da PDFium anziché essere presente nel content stream originale. Esempi tipici sono: scomposizione delle legature (dividere un glifo legatura fi in f + i), lo spazio finale che PDFium inserisce tra run di testo adiacenti visivamente separati e i caratteri di interruzione di riga iniettati alla fine di ciascuna linea visiva

I caratteri generati non hanno un proprio disegno nel content stream della pagina, quindi i loro bounding box sono derivati dai glifi vicini. Tratta la loro posizione sulla pagina con cautela se hai bisogno di hit-testing accurato al pixel; il loro CharacterRectangle può collassare in una regione a larghezza o altezza zero

Per attività come l'estrazione esatta verbatim (firme digitali, flussi di lavoro hash-del-testo, confronto ASCII-true con il content stream della pagina), filtra prima i caratteri generati. Per la normale ricerca di testo e la copia negli appunti l'uso del flag è puramente informativo — PDFium ha già inserito i caratteri perché gli utenti se li aspettano

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