アクショングラフ検査と 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 エントリが含まれます
これら 4 つのトリガーは PDF 1.5 をネゴシエートし、既存のマウスとフォーカスアクショントリガーは以前のバージョン要件を保持します