property ObjectCount: Integer; // read only
Возвращает число page objects (text, path, image, shading, form), связанных с открытым PDF-документом. Count меняется, когда Page присваивается другой индекс страницы, поэтому его можно брать верхней границей цикла for, обходящего все ObjectHandle[Index]
Значение читается напрямую из движка PDFium (нужны Active = True и загруженная текущая страница). Когда документ закрыт, когда на запрошенном уровне нет объектов страницы (text, path, image, shading, form) или свойство неприменимо к текущему PDF, результат — 0
Поскольку этот counter PDFium вычисляет лениво при первом обращении, первый вызов может запустить парсинг соответствующего object stream (например, массива /Annots страницы или дерева /Names документа). Последующие вызовы — O(1)
0, когда Active равно False или когда соответствующая запись словаря PDF отсутствует0 .. ObjectCount - 1 считайте валидным при чтении ObjectHandle[Index]. Индексы вне диапазона поднимают EPdfError
var
I: Integer;
begin
if not Pdf1.Active then Exit;
Memo1.Lines.Add(Format('%d page objects (text, path, image, shading, form)', [Pdf1.ObjectCount]));
for I := 0 to Pdf1.ObjectCount - 1 do
begin
// inspect each item
Memo1.Lines.Add(Format(' [%d]', [I]));
end;
end;