การตรวจสอบกราฟการกระทำและการนำทาง GoToE

THPDFActionBuilder สร้างการกระทำ GoToE ของ PDF 1.6 สำหรับปลายทางภายในเอกสาร PDF ที่ฝังหรือเกี่ยวข้อง ในขณะที่ API การกระทำที่โหลดอ่านประเภทย่อยของการกระทำ PDF มาตรฐานทั้ง 18 ประเภทโดยไม่ดำเนินการใดๆ

ตัวสร้าง GoToE

class function GoToEmbeddedNamedDestination(
  const RootFileName, DestinationName: AnsiString;
  const TargetPath: array of THPDFEmbeddedTarget;
  NewWindow: boolean = false): THPDFActionBuilder;

class function GoToEmbeddedPage(
  const RootFileName: AnsiString;
  TargetPageIndex: Integer;
  const TargetPath: array of THPDFEmbeddedTarget;
  FitMode: THPDFDestinationFitMode = dfmFit;
  Left: Single = 0; Top: Single = 0;
  Right: Single = 0; Bottom: Single = 0;
  Zoom: Single = 0; NewWindow: boolean = false): THPDFActionBuilder;

สร้างรายการเส้นทางปลายทางแต่ละรายการด้วย HPDFEmbeddedParentTarget หรือ HPDFEmbeddedFileTarget หรือการโอเวอร์โหลดของ HPDFEmbeddedAnnotationTarget

รายการลูกที่เลือกผ่านแผนผังชื่อ EmbeddedFiles เขียน /R /C พร้อม /N ในขณะที่ลูกของคำอธิบายประกอบไฟล์แนบเขียน /R /C พร้อมคู่ /P และ /A ที่จำเป็น

รายการหลักเขียนเพียง /R /P รายการที่ซ้อนกันจะกลายเป็นดิกชันนารี /T แบบเรียกซ้ำ และ RootFileName ที่ว่างต้องมีเส้นทางปลายทางที่ไม่ว่าง

ตัวอย่าง Delphi

var
  Action: THPDFActionBuilder;
  Targets: THPDFEmbeddedTargetArray;
begin
  SetLength(Targets, 2);
  Targets[0] := HPDFEmbeddedFileTarget('chapter.pdf');
  Targets[1] := HPDFEmbeddedParentTarget;
  Action := THPDFActionBuilder.GoToEmbeddedNamedDestination(
    'containers\root.pdf', 'EmbeddedStart', Targets, True);
  try
    HotPDF.CurrentPage.SetAnnotationAction(Annot, Action);
  finally
    Action.Free;
  end;
end;

กราฟการกระทำที่โหลด

function GetLoadedActionChain(ActionObject: THPDFObject): THPDFLoadedActionInfoArray;
function GetLoadedOpenActionChain: THPDFLoadedActionInfoArray;
function GetLoadedDocumentActionChain(ActionType: THPDFActionScriptType): THPDFLoadedActionInfoArray;
function GetLoadedPageActionChain(PageIndex: Integer; Trigger: THPDFPageActionTrigger): THPDFLoadedActionInfoArray;
function GetLoadedAnnotationPrimaryActionChain(PageIndex, AnnotationIndex: Integer): THPDFLoadedActionInfoArray;
function GetLoadedAnnotationActionChain(PageIndex, AnnotationIndex: Integer; Trigger: THPDFAnnotationActionTrigger): THPDFLoadedActionInfoArray;
function GetLoadedFormFieldActionChain(FieldIndex: Integer; Trigger: THPDFFormFieldActionTrigger): THPDFLoadedActionInfoArray;
function GetLoadedOutlineActionChain(OutlineIndex: Integer): THPDFLoadedActionInfoArray;

อาร์เรย์ที่ส่งกลับเป็นไปตามลำดับการดำเนินการ: การกระทำหลักปรากฏก่อน ตามด้วยดิกชันนารี /Next หรือสมาชิกอาร์เรย์แต่ละรายการตามลำดับแบบ depth-first

THPDFLoadedActionInfo.Kind ระบุ GoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans หรือ GoTo3DView

ตัวถูกดำเนินการหลักจะถูกถอดรหัสเป็นฟิลด์ปลายทาง ไฟล์ URI JavaScript เป้าหมาย การดำเนินการ แฟล็ก โวลุ่ม ค่าบูลีนเสริม และวัตถุที่เกี่ยวข้อง

NewWindow ใช้ obAbsent, obFalse หรือ obTrue เพื่อให้ค่าที่ขาดหายไปยังคงแตกต่างจากค่า false ที่ระบุอย่างชัดเจน

ตัวอ่านจะไม่ดำเนินการการกระทำใดๆ และไม่ติดตามกราฟที่ไม่มีขอบเขต

รายการที่ผิดรูปแบบ วงรอบ โหนดที่ใช้ร่วมกันซ้ำ ความลึกเกิน 64 จำนวนโหนดเกิน 4096 และอาร์เรย์ /Next ที่ใหญ่เกินไปจะส่งกลับระเบียนการวินิจฉัยผ่าน Malformed และ Issue

ทริกเกอร์การมองเห็นคำอธิบายประกอบ

THPDFAnnotationActionTrigger และ THPDFAnnotationJavaScriptTrigger รวมรายการเปิดหน้า /PO, ปิดหน้า /PC, หน้าที่มองเห็นได้ /PV และหน้าที่มองไม่เห็น /PI

ทริกเกอร์ทั้งสี่นี้เจรจากับ PDF 1.5 ในขณะที่ทริกเกอร์การกระทำเมาส์และโฟกัสที่มีอยู่ยังคงรักษาข้อกำหนดของเวอร์ชันก่อนหน้า

ดูเพิ่มเติม