PDFium Delphi Component Docs

GetLinkedAnnotationIndex メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
現在のページの注釈の /Popup または /IRT の関係を辿り、リンクされた注釈のページインデックスを返します

構文

function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer;

AnnotIndexInteger。現在のページ上の注釈の 0 始まりインデックスで、範囲は 0 .. AnnotationCount - 1 です。範囲外のインデックスは EPdfError を発生させます
RelationshipTPdfAnnotationRelationship。parPopup/Popup エントリ (マークアップ注釈のポップアップウィンドウ) を辿り、parInReplyTo/IRT エントリ (この注釈が返信する相手の注釈) を辿ります
ResultInteger。0 .. AnnotationCount - 1 の範囲にあるリンクされた注釈のページインデックスです。注釈にそのようなリンクがない場合は -1 です

説明

マークアップ注釈は他の注釈を参照できます。テキストノートは /Popup にポップアップウィンドウを保持し、返信は /IRT に返信先の注釈を保持します。この呼び出しは、そのような参照の 1 つをネイティブインターフェイス (FPDFAnnot_GetLinkedAnnot) 経由で解決し、リンクされた注釈ハンドルを他で一貫して使われるページ注釈インデックスへ変換し直します。そのため呼び出し側は Annotation でそれを検査できます

注釈に要求された関係のエントリがない場合、結果は -1 になります。これは正常なケースです。ほとんどの注釈はポップアップも返信参照も持ちません

1 ホップではなく返信スレッド全体を辿るには、GetLinkedAnnotationChain を使用してください

備考

var
  PopupIndex: Integer;
begin
  PopupIndex := Pdf1.GetLinkedAnnotationIndex(3, parPopup);
  if PopupIndex >= 0 then
    Memo1.Lines.Add(Pdf1.Annotation[PopupIndex].ContentsText);
end;

関連項目

GetLinkedAnnotationChain, Annotation, AnnotationCount