property TextPage: FPDF_TEXTPAGE; // read only
TextPage предоставляет необработанный дескриптор FPDF_TEXTPAGE PDFium,
связанный с текущей загруженной страницей. Дескриптор создаётся лениво, когда
страница становится активной, и поддерживается в течение времени жизни этой привязки
страницы; он даёт прямой доступ к API извлечения текста PDFium
(FPDFText_*) для вызывающих, которым нужны операции, не предоставляемые
свойствами TPdf более высокого уровня — например, текстовые прогоны на уровне
глифов, данные кёрнинга, пользовательская семантика поиска или прямые сопоставления
индекс символ — ограничивающий прямоугольник
Дескриптор действителен только пока Active равно True и
выбрана допустимая страница. Переключение страниц (присвоение нового
PageNumber или вызов ReloadPage) уничтожает предыдущий
дескриптор и создаёт новый, поэтому не храните дескриптор между сменами страниц.
Компонент владеет дескриптором и освободит его при демонтаже страницы —
не вызывайте FPDFText_ClosePage для него самостоятельно
Это расширенное свойство. Большинству вызывающих следует предпочесть обёртки
высокого уровня CharacterCount, Character[I],
CharacterRectangle[I], Find / FindNext —
они уже управляют жизненным циклом FPDF_TEXTPAGE внутренне.
Опускайтесь до необработанного дескриптора только тогда, когда нужны API PDFium,
которые PDFium Delphi Component ещё не предоставил
nil, когда ни одна страница не активна. Всегда проверяйте
дескриптор перед передачей его в PDFiumFPDFText_FindStart;
этот контекст поиска принадлежит независимо через свойство Find
var TP: FPDF_TEXTPAGE;
TP := Pdf1.TextPage;
if Assigned(TP) then
ShowMessage(Format('PDFium reports %d chars',
[FPDFText_CountChars(TP)]));