액션 그래프 검사 및 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를 협상하며 기존 마우스 및 포커스 액션 트리거는 이전 버전 요구사항을 유지합니다