property CharacterCount: Integer; // read only
CharacterCount는 활성 page의 FPDF_TEXTPAGE에서 PDFium이 식별한 character 수를 반환합니다. 이는 Character[Index], CharacterRectangle[Index], CharacterOrigin[Index]과 search / selection layer가 쓰는 것과 같은 인덱싱입니다. 개수는 ToUnicode CMap 해석 후의 glyph를 반영하므로 각 entry는 PDF font-program glyph가 아니라 PDFium이 디코딩한 하나의 Unicode code point에 해당합니다
Active가 False이거나 page에 text content가 없거나(pure image / vector page), text content가 ToUnicode CMap 없는 font로 그려졌고 어떤 fallback heuristic도 해독하지 못했으면 값은 0입니다. PDFium은 줄바꿈과 단어 경계를 모델링하기 위해 스스로 합성한 “generated” whitespace character도 포함합니다. 실제 glyph와 합성 glyph를 구분하려면 CharacterGenerated[Index]를 확인하세요
일반적인 루프는 for I := 0 to Pdf.CharacterCount - 1 do이며, Pdf.Character[I]는 WideChar를 반환합니다. 이 값을 하나의 문자열로 이어 붙이면 page의 text content가 읽기 순서로 나옵니다. CharacterCount 자체는 page가 parsed된 뒤 O(1)이며, indexed accessor가 character별 작업을 처리합니다
CharacterMapError[Index]를 함께 보면 PDFium이 Unicode로 되돌리지 못한 glyph를 감지할 수 있습니다. 그런 경우에는 보통 OCR이나 font-program 검사가 필요합니다
var S: string;
var I: Integer;
SetLength(S, Pdf1.CharacterCount);
for I := 1 to Length(S) do
S[I] := Pdf1.Character[I - 1];
Memo1.Lines.Add(S);