액션 그래프 검사 및 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.KindGoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans 또는 GoTo3DView를 식별합니다

핵심 피연산자는 대상, 파일, URI, JavaScript, 타겟, 작업, 플래그, 볼륨, 선택적 불 값 및 관련 객체 필드로 디코딩됩니다

NewWindowobAbsent, obFalse 또는 obTrue를 사용하므로 누락된 값은 명시적 false 값과 구별됩니다

판독기는 액션을 실행하지 않으며 무한 그래프를 따라가지 않습니다

잘못된 항목, 순환, 반복된 공유 노드, 64 초과 깊이, 4096 초과 노드 수 및 초과 크기의 /Next 배열은 MalformedIssue를 통해 진단 레코드를 반환합니다

주석 가시성 트리거

THPDFAnnotationActionTriggerTHPDFAnnotationJavaScriptTrigger에는 페이지 열기 /PO, 페이지 닫기 /PC, 페이지 보임 /PV 및 페이지 숨김 /PI 항목이 포함됩니다

이 네 트리거는 PDF 1.5를 협상하며 기존 마우스 및 포커스 액션 트리거는 이전 버전 요구사항을 유지합니다

참고 항목