PDFium Delphi Component Docs

GetLinkedAnnotationChain 메서드

컴포넌트: TPdf  ·  유닛: PDFium
/Popup 또는 /IRT 관계를 반복해서 따라가면서 연결된 모든 주석의 페이지 인덱스를 순환 보호와 함께 반환합니다

Syntax

function GetLinkedAnnotationChain(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship; MaxDepth: Integer = 64): TPdfIntegerArray;

AnnotIndexInteger. 현재 페이지에서 시작 주석의 0 기반 인덱스이며 0 .. AnnotationCount - 1 범위입니다
RelationshipTPdfAnnotationRelationship. parPopup/Popup 항목을 따라가고 parInReplyTo/IRT 답글 항목을 따라갑니다
MaxDepthInteger. 따라갈 링크의 최대 개수입니다. 1에서 4096 사이여야 하며 그렇지 않으면 EPdfError가 발생합니다. 기본값은 64입니다
ResultTPdfIntegerArray. 방문 순서대로 정렬된 연결 주석의 페이지 인덱스입니다. 시작 주석에 해당 링크가 없으면 비어 있습니다

Description

GetLinkedAnnotationIndex를 반복해서 적용합니다. 시작 주석에서 요청된 관계를 따라 다음 주석으로 이동하고, 그 주석에서 다시 이동하면서 지나가는 모든 인덱스를 수집합니다. 결과는 토론의 답글 스레드나 팝업 체인을 평범한 페이지 주석 인덱스 배열로 표현한 것입니다

순회는 세 조건에서 멈춥니다. 현재 주석에 더 이상 링크가 없거나, 방문한 링크 수가 MaxDepth에 도달하거나, 다음 인덱스가 이미 본 주석을 다시 가리킬 때입니다(시작 인덱스도 본 것으로 칩니다). 이 순환 가드 덕분에 /IRT 항목이 루프를 이루는 깨진 문서에서도 호출이 안전합니다

시작 인덱스 자체는 결과에 절대 포함되지 않습니다. 결과는 시작 인덱스가 이어지는 주석들만 담습니다. 요청된 링크가 없는 주석은 오류가 아니라 빈 배열을 돌려줍니다

Remarks

Example

var
  Chain: TPdfIntegerArray;
  Index: Integer;
begin
  // collect the whole reply thread under annotation 5
  Chain := Pdf1.GetLinkedAnnotationChain(5, parInReplyTo);
  for Index in Chain do
    Memo1.Lines.Add(Pdf1.Annotation[Index].ContentsText);
end;

See Also

GetLinkedAnnotationIndex, Annotation, AnnotationCount