property DestinationCount: Integer; // read only
DestinationCount сообщает число именованных назначений, зарегистрированных
в документе, то есть записей, достижимых через словарь каталога /Dests
или его дерево имен /Names /Dests (раздел 12.3.2.3 спецификации PDF 1.7)
Именованное назначение связывает строковую метку с целевой страницей, прямоугольником
области просмотра и необязательным коэффициентом масштабирования; закладки, аннотации-ссылки и действия remote-goto обращаются к назначениям либо напрямую, либо по имени
Значение равно 0, когда Active равно False или
когда именованные назначения не объявлены вовсе (ссылки и закладки при этом все еще могут
работать через встроенные явные назначения; в этом счете участвует только вариант
«named») Используйте Destination[Index] с индексами от 0 до
DestinationCount - 1, чтобы получить запись TDestination
(дескриптор, имя, номер страницы, X/Y/Zoom и флаги наличия, указывающие, какие поля
сохранены явно)
Стоимость составляет O(n) на каждое обращение, потому что PDFium каждый раз проходит по дереву имен
Для повторных поисков по имени предпочитайте DestinationByName[Name] ручному
циклу — внутренний поиск по сбалансированному дереву масштабируется лучше, чем линейный
просмотр
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;