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