property CharacterGenerated[Index: Integer]: Boolean; // read only
| Index | Indice di carattere a base zero sulla pagina corrente, nell'intervallo da 0 a CharacterCount - 1 |
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
True più comune; non presumere che i caratteri generati siano sempre glifi invisibili
// 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;