property DestinationCount: Integer; // read only
DestinationCount сообщает число именованных назначений (named destinations), зарегистрированных в документе — то есть записей, доступных через словарь /Dests каталога или дерево имён /Names /Dests (раздел 12.3.2.3 спецификации PDF 1.7) Именованное назначение связывает строковую метку с целевой страницей, прямоугольником области просмотра и опциональным фактором зума; закладки, link-аннотации и remote-goto действия ссылаются на назначения либо инлайн, либо по имени
Значение равно 0, когда Active равно False или именованные назначения не объявлены (ссылки и закладки могут работать и через инлайновые явные назначения; в этом count участвует только “именованная” разновидность) Через Destination[Index] с индексами от 0 до DestinationCount - 1 получается запись TDestination (дескриптор, имя, номер страницы, X/Y/Zoom плюс флаги наличия, показывающие, какие поля явно сохранены)
Каждое обращение стоит O(n), потому что PDFium каждый раз обходит дерево имён Для повторных поисков по имени лучше DestinationByName[Name] вместо ручного цикла — внутри PDFium выполняется поиск по сбалансированному дереву, который масштабируется лучше линейного сканирования
Bookmarks прямее; именованные назначения в основном важны при обработке ссылок из других PDF
var I: Integer;
var D: TDestination;
for I := 0 to Pdf1.DestinationCount - 1 do
begin
D := Pdf1.Destination[I];
Memo1.Lines.Add(Format('%s → page %d', [D.Name, D.PageNumber]));
end;