function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer;
| AnnotIndex | Integer. Index anotace na aktuální stránce počítaný od nuly, v rozsahu 0 .. AnnotationCount - 1. Index mimo rozsah vyvolá EPdfError |
| Relationship | TPdfAnnotationRelationship. parPopup sleduje položku /Popup (popup okno markup anotace); parInReplyTo sleduje položku /IRT (anotaci, na kterou tato odpovídá) |
| Result | Integer. Stránkový index propojené anotace v 0 .. AnnotationCount - 1, nebo -1, když anotace takový odkaz nemá |
Markup anotace mohou odkazovat na jiné anotace. Textová poznámka drží popup okno v /Popup a odpověď nese v /IRT anotaci, na kterou odpovídá. Toto volání řeší jeden takový odkaz přes nativní rozhraní (FPDFAnnot_GetLinkedAnnot) a překládá handle propojené anotace zpět na stránkový index anotace používaný všude jinde, takže si jej volající může prohlédnout přes Annotation
Když anotace nemá položku pro požadovanou relaci, výsledkem je -1. To je normální případ — většina anotací nese ani popup, ani referenci odpovědi
Pro projití celého vlákna odpovědí místo jediného skoku použijte GetLinkedAnnotationChain
AnnotationCount jako AnnotIndex
var
PopupIndex: Integer;
begin
PopupIndex := Pdf1.GetLinkedAnnotationIndex(3, parPopup);
if PopupIndex >= 0 then
Memo1.Lines.Add(Pdf1.Annotation[PopupIndex].ContentsText);
end;