property CharacterCount: Integer; // read only
CharacterCount возвращает число символов, которые PDFium видит на FPDF_TEXTPAGE активной страницы — это та же индексация, что движет Character[Index], CharacterRectangle[Index], CharacterOrigin[Index] и слоем поиска/выделения. Count отражает глифы после разрешения ToUnicode CMap, поэтому каждая запись соответствует одному Unicode code point в трактовке PDFium, а не одному глифу шрифтовой программы PDF
Значение равно 0, когда Active равно False, когда на странице нет текста (чисто графические/векторные страницы) или когда текст нарисован шрифтами без ToUnicode CMap и ни одна резервная эвристика не смогла их декодировать. PDFium также включает “сгенерированные” пробельные символы, которые он синтезирует для моделирования переносов строк и границ слов — проверяйте CharacterGenerated[Index], чтобы отличать настоящие глифы от синтетических
Типичный цикл: for I := 0 to Pdf.CharacterCount - 1 do, где Pdf.Character[I] возвращает WideChar. Конкатенация таких символов даёт текст страницы в порядке чтения Сам CharacterCount стоит O(1) после парсинга страницы; по-символьную работу делают индексированные аксессоры
CharacterMapError[Index], чтобы ловить глифы, которые PDFium не смог отобразить обратно в Unicode; такие обычно требуют OCR или инспекции шрифтовой программы
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);