function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer;
| AnnotIndex | Integer。現在のページ上の注釈の 0 始まりインデックスで、範囲は 0 .. AnnotationCount - 1 です。範囲外のインデックスは EPdfError を発生させます |
| Relationship | TPdfAnnotationRelationship。parPopup は /Popup エントリ (マークアップ注釈のポップアップウィンドウ) を辿り、parInReplyTo は /IRT エントリ (この注釈が返信する相手の注釈) を辿ります |
| Result | Integer。0 .. AnnotationCount - 1 の範囲にあるリンクされた注釈のページインデックスです。注釈にそのようなリンクがない場合は -1 です |
マークアップ注釈は他の注釈を参照できます。テキストノートは /Popup にポップアップウィンドウを保持し、返信は /IRT に返信先の注釈を保持します。この呼び出しは、そのような参照の 1 つをネイティブインターフェイス (FPDFAnnot_GetLinkedAnnot) 経由で解決し、リンクされた注釈ハンドルを他で一貫して使われるページ注釈インデックスへ変換し直します。そのため呼び出し側は Annotation でそれを検査できます
注釈に要求された関係のエントリがない場合、結果は -1 になります。これは正常なケースです。ほとんどの注釈はポップアップも返信参照も持ちません
1 ホップではなく返信スレッド全体を辿るには、GetLinkedAnnotationChain を使用してください
AnnotIndex と同じ AnnotationCount リストへのインデックスです
var
PopupIndex: Integer;
begin
PopupIndex := Pdf1.GetLinkedAnnotationIndex(3, parPopup);
if PopupIndex >= 0 then
Memo1.Lines.Add(Pdf1.Annotation[PopupIndex].ContentsText);
end;