Inspektion af handlingsgrafen og GoToE-navigation

THPDFActionBuilder opretter PDF 1.6 GoToE-handlinger for destinationer i indlejrede eller relaterede PDF-dokumenter, mens den indlæste-handlings-API læser alle 18 standardiserede PDF-handlingsundertyper uden at udføre dem

GoToE-opbyggere

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;

Opbyg hver post i målstien med HPDFEmbeddedParentTarget, HPDFEmbeddedFileTarget eller en HPDFEmbeddedAnnotationTarget-overbelastning

Et barn udvalgt via EmbeddedFiles-navnetræet skriver /R /C plus /N, mens et vedhæftnings-annotationsbarn skriver /R /C plus det krævede /P- og /A-par

Overordnede poster skriver kun /R /P, indlejrede poster bliver rekursive /T-ordbøger, og et tomt RootFileName kræver en ikke-tom målsti

Delphi-eksempel

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;

Indlæst handlingsgraf

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;

Det returnerede array følger udførelsesrækkefølgen: overordnet handling vises først, efterfulgt af hvert /Next-ordbogs- eller arraymedlem i ordnet dybde-først-rækkefølge

THPDFLoadedActionInfo.Kind identificerer GoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans eller GoTo3DView

Kerne-operandi afkodes til destinations-, fil-, URI-, JavaScript-, mål-, operations-, flag-, volumen-, valgfri-boolean- og relateret-objektfelter

NewWindow bruger obAbsent, obFalse eller obTrue, så en manglende værdi forbliver adskilt fra en eksplicit falsk værdi

Læseren udfører aldrig en handling og følger aldrig en ubegrænset graf

Fejludformede poster, cyklusser, gentagne delte knuder, dybde over 64, knudeantal over 4096 og overdimensionerede /Next-arrays returnerer diagnostiske poster via Malformed og Issue

Udløsere for annotationsynlighed

THPDFAnnotationActionTrigger og THPDFAnnotationJavaScriptTrigger omfatter side-åben /PO, side-lukket /PC, side-synlig /PV og side-usynlig /PI-poster

Disse fire udløsere forhandler PDF 1.5, mens de eksisterende mus- og fokushandlingsudløsere bevarer deres tidligere versionskrav

Se også