Inspeksjon av handlingsgrafen og GoToE-navigasjon

THPDFActionBuilder oppretter PDF 1.6 GoToE-handlinger for mål inne i innebygde eller relaterte PDF-dokumenter, mens det innlaste-handlings-API-et leser alle 18 standardiserte PDF-handlingsundertyper uten å utføre dem

GoToE-byggere

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;

Bygg hver oppføring i målstien med HPDFEmbeddedParentTarget, HPDFEmbeddedFileTarget eller en HPDFEmbeddedAnnotationTarget-overbelastning

Et barn valgt via EmbeddedFiles-navnetreet skriver /R /C plus /N, mens et vedleggs-annotasjonsbarn skriver /R /C plus det påkrevde /P- og /A-paret

Overordnede oppføringer skriver kun /R /P, nestede oppføringer blir rekursive /T-ordbøker, og et tomt RootFileName krever 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;

Innlastet 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;

Arrayen som returneres følger utførelsesrekkefølgen: den overordnede handlingen vises først, etterfulgt av hvert /Next-ordboks- eller arraymedlem i ordnet dybde-først-rekkefølge

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

Kjerne-operandi avkodes til mål-, fil-, URI-, JavaScript-, mål-, operasjons-, flagg-, volum-, valgfri-boolean- og relatert-objektfelt

NewWindow bruker obAbsent, obFalse eller obTrue slik at en manglende verdi forblir atskilt fra en uttrykkelig usann verdi

Leseren utfører aldri en handling og følger aldri en ubegrenset graf

Feilutformede oppføringer, sykluser, gjentatte delte noder, dybde over 64, nodeantall over 4096 og overdimensjonerte /Next-arrayer returnerer diagnostiske oppføringer via Malformed og Issue

Utløsere for annotasjonssynlighet

THPDFAnnotationActionTrigger og THPDFAnnotationJavaScriptTrigger omfatter side-åpen /PO, side-lukket /PC, side-synlig /PV og side-usynlig /PI-oppføringer

Disse fire utløserne forhandler PDF 1.5, mens de eksisterende mus- og fokushandlingsutløserne beholder sine tidligere versjonskrav

Se også