function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer;
| AnnotIndex | Integer. Індекс анотації на поточній сторінці від нуля, у діапазоні 0 .. AnnotationCount - 1. Індекс поза діапазоном породжує EPdfError |
| Relationship | TPdfAnnotationRelationship. parPopup веде до запису /Popup (вікно підказки розмічальної анотації); parInReplyTo веде до запису /IRT (анотація, відповіддю на яку є ця) |
| Result | Integer. Індекс пов'язаної анотації на сторінці в діапазоні 0 .. AnnotationCount - 1, або -1, коли в анотації немає такого зв'язку |
Розмічальні анотації можуть посилатися на інші анотації. Текстова примітка зберігає вікно підказки в /Popup, а відповідь несе анотацію, на яку відповідає, у /IRT. Цей виклик розв'язує таке посилання через нативний інтерфейс (FPDFAnnot_GetLinkedAnnot) і перетворює дескриптор пов'язаної анотації назад на індекс анотації на сторінці, який використовується всюди інше, тож викликач може оглянути її через Annotation
Коли в анотації немає запису для запитаного зв'язку, результат — -1. Це звичайний випадок — більшість анотацій не мають ані підказки, ані посилання на відповідь
Щоб пройти весь ланцюжок відповідей, а не один крок, використайте GetLinkedAnnotationChain
AnnotationCount, що й AnnotIndex
var
PopupIndex: Integer;
begin
PopupIndex := Pdf1.GetLinkedAnnotationIndex(3, parPopup);
if PopupIndex >= 0 then
Memo1.Lines.Add(Pdf1.Annotation[PopupIndex].ContentsText);
end;