การตรวจสอบกราฟการกระทำและการนำทาง 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 ในขณะที่ทริกเกอร์การกระทำเมาส์และโฟกัสที่มีอยู่ยังคงรักษาข้อกำหนดของเวอร์ชันก่อนหน้า