PDFium Delphi Component Docs

GetLinkedAnnotationChain Metodo

Componente: TPdf  ·  Unità: PDFium
Percorre ripetutamente una relazione /Popup o /IRT e restituisce gli indici di pagina di ogni annotazione collegata lungo il percorso, con protezione dai cicli

Sintassi

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

AnnotIndexInteger. Indice a base zero dell'annotazione di partenza nella pagina corrente, nell'intervallo 0 .. AnnotationCount - 1
RelationshipTPdfAnnotationRelationship. parPopup segue le voci /Popup; parInReplyTo segue le voci di risposta /IRT
MaxDepthInteger. Numero massimo di collegamenti da seguire. Deve essere tra 1 e 4096, altrimenti viene sollevato un EPdfError. Il valore predefinito è 64
ResultTPdfIntegerArray. Indici di pagina delle annotazioni collegate in ordine di visita. Vuoto quando l'annotazione di partenza non ha un tale collegamento

Descrizione

Applica ripetutamente GetLinkedAnnotationIndex: dall'annotazione di partenza segue la relazione richiesta fino all'annotazione successiva, poi di nuovo da quella, raccogliendo ogni indice lungo il percorso. Il risultato è il thread di risposte di una discussione, oppure una catena di popup, come semplice array di indici delle annotazioni di pagina

Il percorso si arresta a tre condizioni: l'annotazione corrente non ha altri collegamenti, il numero di collegamenti visitati raggiunge MaxDepth o l'indice successivo rivedrebbe un'annotazione già incontrata (l'indice di partenza conta come incontrato). La guardia anti-ciclo rende la chiamata sicura su documenti malformati le cui voci /IRT formano cicli

L'indice di partenza stesso non fa mai parte del risultato — solo le annotazioni a cui conduce. Un'annotazione senza il collegamento richiesto produce un array vuoto, non un errore

Osservazioni

Esempio

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;

Vedi anche

GetLinkedAnnotationIndex, Annotation, AnnotationCount