property Bookmark[const Title: WString]: TBookmark; // read only
O outline do PDF (também chamado de outline do documento ou de "bookmarks" em visualizadores como o Acrobat) é uma árvore hierárquica de entradas nomeadas pela qual o usuário navega no painel lateral. Cada entrada tem um título, um destino ou ação opcional e zero ou mais filhos. O PDFium Delphi Component achata a árvore em uma sequência de records TBookmark que retêm o handle FPDF_BOOKMARK subjacente, além do título, número da página de destino, tipo de ação e destino da ação pré-resolvidos.
A forma Bookmark indexada por string executa uma busca que diferencia maiúsculas de minúsculas em toda a árvore de outline (em profundidade) e retorna o primeiro nó correspondente. O record retornado tem Handle = nil e PageNumber = 0 quando não existe entrada com esse título — verifique Handle antes de navegar.
Use Bookmarks para enumerar todos os nós na ordem do documento, BookmarkChildren para percorrer um nível de aninhamento e BookmarkFrom para converter um handle bruto (por exemplo, de um evento de clique no visualizador) de volta em um record populado.
| Title | WString. O título completo do bookmark a corresponder. A comparação diferencia maiúsculas de minúsculas e é exata (sem correspondência por substring ou curinga). Espaços em branco e pontuação no título devem ser reproduzidos exatamente como armazenados no outline do PDF. |
Action do record retornado indica como o bookmark se comporta quando ativado — acGoto salta para ActionPageNumber dentro do documento, acGotoRemote aponta para outro arquivo PDF, acUri abre uma URL, acLaunch executa um arquivo externo e acUnsupported significa que o PDFium não conseguiu interpretar o destino.0.
var
Bm: TBookmark;
begin
Pdf1.LoadFromFile('specification.pdf');
Bm := Pdf1.Bookmark['Chapter 5: Annotations'];
if Bm.Handle <> nil then
begin
case Bm.Action of
acGoto: Pdf1.PageNumber := Bm.ActionPageNumber;
acUri: ShowMessage('URL bookmark');
acGotoRemote: ShowMessage('External PDF target');
end;
end
else
ShowMessage('No bookmark with that title.');
end;