Inspektion av åtgärdsgrafen och GoToE-navigation
THPDFActionBuilder skapar PDF 1.6 GoToE-åtgärder för destinationer inuti inbäddade eller relaterade PDF-dokument, medan det inlästa-åtgärds-API:et läser alla 18 standardiserade PDF-åtgärdsundertyper utan att köra dem
GoToE-byggare
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 varje post i målsökvägen med HPDFEmbeddedParentTarget, HPDFEmbeddedFileTarget eller en HPDFEmbeddedAnnotationTarget-överlagring
ett barn som valts via EmbeddedFiles-namnträdet skriver /R /C plus /N, medan ett bilage-anteckningsbarn skriver /R /C plus det obligatoriska /P- och /A-paret
Överordnade poster skriver endast /R /P, nästlade poster blir rekursiva /T-ordböcker, och ett tomt RootFileName kräver en icke-tom målsökväg
Delphi-exempel
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;
Inläst åtgärdsgraf
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;
Den returnerade arrayen följer körningsordningen: överordnad åtgärd visas först, följt av varje /Next-ordboks- eller arraymedlem i ordnad djupet-först-ordning
THPDFLoadedActionInfo.Kind identifierar GoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans eller GoTo3DView
Kärn-operander avkodas till destinations-, fil-, URI-, JavaScript-, mål-, operations-, flagg-, volym-, valfritt-boolean- och relaterat-objektfält
NewWindow använder obAbsent, obFalse eller obTrue så att ett saknat värde förblir skilt från ett uttryckligt falskt värde
Läsaren kör aldrig en åtgärd och följer aldrig en obegränsad graf
Felutformade poster, cykler, upprepade delade noder, djup över 64, nodantal över 4096 och överdimensionerade /Next-arrayer returnerar diagnostiska poster via Malformed och Issue
Utlösare för anteckningssynlighet
THPDFAnnotationActionTrigger och THPDFAnnotationJavaScriptTrigger omfattar sida-öppen /PO, sida-stängd /PC, sida-synlig /PV och sida-osynlig /PI-poster
Dessa fyra utlösare förhandlar PDF 1.5, medan de befintliga mus- och fokusåtgärdsutlösarna behåller sina tidigare versionskrav