PDFium Delphi Component Docs

GetLinkedAnnotationChain Método

Componente: TPdf  ·  Unidad: PDFium
Recorre repetidamente una relación /Popup o /IRT y devuelve los índices de página de cada anotación enlazada a lo largo del camino, con protección contra ciclos

Syntax

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

AnnotIndexInteger. Índice basado en cero de la anotación de inicio en la página actual, en el rango 0 .. AnnotationCount - 1
RelationshipTPdfAnnotationRelationship. parPopup sigue las entradas /Popup; parInReplyTo sigue las entradas de respuesta /IRT
MaxDepthInteger. Número máximo de enlaces a seguir. Debe estar entre 1 y 4096; de lo contrario se lanza un EPdfError. El valor predeterminado es 64
ResultTPdfIntegerArray. Índices de página de las anotaciones enlazadas en orden de visita. Vacío cuando la anotación de inicio no tiene dicho enlace

Description

Aplica repetidamente GetLinkedAnnotationIndex: desde la anotación de inicio sigue la relación solicitada hasta la siguiente anotación, y de nuevo desde esa, recopilando cada índice a lo largo del camino. El resultado es el hilo de respuestas de una discusión, o una cadena de popups, como una matriz simple de índices de anotaciones de página

El recorrido se detiene en tres condiciones: la anotación actual no tiene más enlaces, el número de enlaces visitados alcanza MaxDepth, o el siguiente índice volvería a una anotación ya vista (el índice de inicio cuenta como visto). La guarda contra ciclos hace que la llamada sea segura en documentos mal formados cuyas entradas /IRT forman bucles

El índice de inicio mismo nunca forma parte del resultado — solo las anotaciones a las que conduce. Una anotación sin el enlace solicitado produce una matriz vacía, no un error

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