function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer;
| AnnotIndex | Integer. Nullbasierter Index der Anmerkung auf der aktuellen Seite im Bereich 0 .. AnnotationCount - 1. Ein Index außerhalb des Bereichs löst einen EPdfError aus |
| Relationship | TPdfAnnotationRelationship. parPopup folgt dem /Popup-Eintrag (dem Popup-Fenster einer Markup-Anmerkung); parInReplyTo folgt dem /IRT-Eintrag (der Anmerkung, auf die diese antwortet) |
| Result | Integer. Seitenindex der verknüpften Anmerkung in 0 .. AnnotationCount - 1 oder -1, wenn die Anmerkung keine solche Verknüpfung besitzt |
Markup-Anmerkungen können auf andere Anmerkungen verweisen. Eine Textnotiz hält ein Popup-Fenster in /Popup, und eine Antwort trägt die Anmerkung, auf die sie antwortet, in /IRT. Dieser Aufruf löst einen solchen Verweis über die native Schnittstelle (FPDFAnnot_GetLinkedAnnot) auf und übersetzt das Handle der verknüpften Anmerkung zurück in den Seitenanmerkungs-Index, der überall sonst verwendet wird, sodass der Aufrufer sie über Annotation untersuchen kann
Besitzt die Anmerkung keinen Eintrag für die angeforderte Beziehung, ist das Ergebnis -1. Das ist der Normalfall — die meisten Anmerkungen tragen weder einen Popup- noch einen Antwortverweis
Um einen gesamten Antwortfaden statt eines einzelnen Schritts zu durchlaufen, verwenden Sie GetLinkedAnnotationChain
AnnotationCount-Liste wie AnnotIndex
var
PopupIndex: Integer;
begin
PopupIndex := Pdf1.GetLinkedAnnotationIndex(3, parPopup);
if PopupIndex >= 0 then
Memo1.Lines.Add(Pdf1.Annotation[PopupIndex].ContentsText);
end;