function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer;
| AnnotIndex | Integer. Índice basado en cero de la anotación en la página actual, en el rango 0 .. AnnotationCount - 1. Un índice fuera de rango lanza un EPdfError |
| Relationship | TPdfAnnotationRelationship. parPopup sigue la entrada /Popup (la ventana emergente de una anotación de marcado); parInReplyTo sigue la entrada /IRT (la anotación a la que esta responde) |
| Result | Integer. Índice de página de la anotación enlazada en 0 .. AnnotationCount - 1, o -1 cuando la anotación no tiene dicho enlace |
Las anotaciones de marcado pueden referenciar otras anotaciones. Una nota de texto mantiene una ventana emergente en /Popup, y una respuesta lleva en /IRT la anotación a la que responde. Esta llamada resuelve una de tales referencias a través de la interfaz nativa (FPDFAnnot_GetLinkedAnnot) y traduce el manejador de la anotación enlazada de nuevo al índice de anotación de página usado en todas las demás partes, de modo que el llamador pueda inspeccionarla a través de Annotation
Cuando la anotación no tiene entrada para la relación solicitada, el resultado es -1. Ese es el caso normal — la mayoría de las anotaciones no llevan ni referencia de popup ni de respuesta
Para recorrer un hilo de respuestas completo en lugar de un solo salto, use GetLinkedAnnotationChain
AnnotationCount que AnnotIndex
var
PopupIndex: Integer;
begin
PopupIndex := Pdf1.GetLinkedAnnotationIndex(3, parPopup);
if PopupIndex >= 0 then
Memo1.Lines.Add(Pdf1.Annotation[PopupIndex].ContentsText);
end;