PDFium Delphi Component Docs

מתודת GetLinkedAnnotationChain

Component: TPdf  ·  Unit: PDFium
עוברת שוב ושוב על קשר /Popup או /IRT ומחזירה את אינדקסי העמוד של כל הערה מקושרת בדרך, עם הגנה מפני מעגלים

Syntax

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

AnnotIndexInteger. אינדקס מבוסס אפס של ההערה הפותחת בעמוד הנוכחי, בטווח 0 .. AnnotationCount - 1.
RelationshipTPdfAnnotationRelationship. parPopup עוקב אחר רשומות /Popup; parInReplyTo עוקב אחר רשומות התשובה /IRT.
MaxDepthInteger. מספר הקישורים המרבי לעקוב אחריהם. חייב להיות בין 1 ל-4096, אחרת מועלה EPdfError. ברירת המחדל היא 64.
ResultTPdfIntegerArray. אינדקסי העמוד של ההערות המקושרות לפי סדר הביקור. ריק כאשר להערה הפותחת אין קישור כזה.

Description

מיישמת שוב ושוב את GetLinkedAnnotationIndex: מההערה הפותחת היא עוקבת אחר הקשר המבוקש אל ההערה הבאה, ואז שוב ממנה, ואוספת כל אינדקס בדרך. התוצאה היא שרשור התשובות של דיון, או שרשרת popups, כמערך פשוט של אינדקסי הערות עמוד

ההליכה נעצרת בשלושה תנאים: להערה הנוכחית אין קישור נוסף, מספר הקישורים שנבקרו מגיע ל-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