property LinkAnnotationCount[PageNumber: Integer]: Integer; // read only
LinkAnnotationCount retorna a contagem de entradas de subtipo /Link na
página identificada pelo argumento PageNumber baseado em 1 (seção 12.5.6.5 da
especificação PDF 1.7). Diferente de AnnotationCount, que se restringe à página
ativa no momento e conta todos os subtipos de anotação, esta propriedade indexada visa qualquer
página diretamente e filtra apenas as anotações de link — as entradas que envolvem uma
região clicável em torno de texto ou gráficos e apontam para um destino, URI, ação de
launch ou ação nomeada.
Passe PageNumber no intervalo 1 .. PageCount. O valor é
0 quando Active é False, quando o índice da página é
inválido ou quando a página simplesmente não contém anotações de link. O PDFium Delphi Component também expõe
URLs da web “auto-detetadas” separadamente por meio de WebLinkCount
— elas vêm da varredura de padrões de texto e não fazem parte de LinkAnnotationCount.
Use LinkAnnotation[PageNumber, Index] com índices de 0
a LinkAnnotationCount[PageNumber] - 1 para recuperar um
record TLinkAnnotation — retângulo delimitador, número da página de destino,
tipo de ação, pontos de quadrilátero para links de múltiplas linhas e a carga da ação
resolvida. O carregamento de metadados de link é O(n) por página; guarde em cache ao iterar por muitas
páginas.
Index baseado em 0 da maioria dos indexadores estilo array.WebLinkCount ao implementar uma sobreposição unificada de
“pontos quentes clicáveis” em um visualizador personalizado.0 em vez de lançar exceção — seguro de usar
dentro de sondagens em threads, sem try/except envolvente.
var P, I: Integer;
var Link: TLinkAnnotation;
for P := 1 to Pdf1.PageCount do
for I := 0 to Pdf1.LinkAnnotationCount[P] - 1 do
begin
Link := Pdf1.LinkAnnotation[P, I];
Memo1.Lines.Add(Format('p%d link → page %d', [P, Link.PageNumber]));
end;