property CharacterGenerated[Index: Integer]: Boolean; // read only
| Index | 現在ページのゼロベースの文字インデックス、0 から CharacterCount - 1 の範囲 |
CharacterGenerated は指定されたインデックスの文字が元のコンテンツストリームに存在したのではなく PDFium が内部で生成したときに True を返します。典型的な例はリガチャ分解(fi リガチャグリフを f + i へ分割)、視覚的に分離された隣接テキストランの間に PDFium が挿入する後置スペース、各視覚行の終わりに注入される改行文字です
生成された文字はページコンテンツストリームに独自の描画を持たないため、その境界ボックスは隣接グリフから導出されます。ピクセル精度のヒットテストが必要な場合はページ上の位置を注意して扱ってください。CharacterRectangle はゼロ幅またはゼロ高さの領域へ縮退することがあります
厳密な逐語抽出(デジタル署名、テキストのハッシュワークフロー、ページコンテンツストリームとの ASCII 忠実比較など)のタスクでは、最初に生成された文字をフィルターします。通常のテキスト検索とクリップボードコピーでは、このフラグは純粋に情報提供です。PDFium はユーザーが期待するためこれらの文字をすでに挿入しています
True の命中です。生成された文字が常に不可視のグリフとは限らないと想定しないでください
// 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;