動作圖檢查與 GoToE 導覽
THPDFActionBuilder 為內嵌或關聯 PDF 文件內部的目標建立 PDF 1.6 GoToE 動作,而已載入動作 API 在不執行的情況下讀取全部 18 種標準 PDF 動作子類型
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 字典或陣列成員
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,而現有的滑鼠和焦點動作觸發器保留其更早的版本要求