property CharacterCount: Integer; // read only
CharacterCount возвращает число символов, которые PDFium определяет в FPDF_TEXTPAGE активной страницы, то же самое индексирование используется для Character[Index], CharacterRectangle[Index], CharacterOrigin[Index] и слоя поиска / выделения. Счёт отражает глифы после разрешения ToUnicode CMap, поэтому каждая запись соответствует одному коду Unicode, декодированному 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);