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