Műveletgráf-vizsgálat és GoToE navigáció

A THPDFActionBuilder PDF 1.6 GoToE műveleteket hoz létre beágyazott vagy rokon PDF dokumentumokon belüli célokhoz, miközben a betöltött művelet API a mind a 18 szabványos PDF művelet-altípust végrehajtásuk nélkül olvassa

GoToE készítők

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;

Minden célútvonal-bejegyzést egy HPDFEmbeddedParentTarget, HPDFEmbeddedFileTarget vagy HPDFEmbeddedAnnotationTarget túlterheléssel építsen

Az EmbeddedFiles névfa révén kiválasztott gyermek /R /C plusz /N értéket ír, míg egy melléklet-jegyzet gyermek /R /C plusz a kötelező /P és /A párt ír

A szülő bejegyzések csak /R /P értéket írnak, a beágyazott bejegyzések rekurzív /T szótárakká válnak, és egy üres RootFileName nem üres célútvonalat követel meg

Delphi példa

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;

Betöltött műveletgráf

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;

A visszaadott tömb a végrehajtási sorrendet követi: a szülő művelet jelenik meg először, utána következnek a /Next szótárak vagy tömbelemek rendezett mélységi sorrendben

A THPDFLoadedActionInfo.Kind azonosítja a GoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans vagy GoTo3DView típust

A mag-operándusok cél-, fájl-, URI-, JavaScript-, cél-, művelet-, jelző-, kötet-, opcionális logikai és rokon objektum-mezőkre kerülnek dekódolásra

A NewWindow az obAbsent, obFalse vagy obTrue értékeket használja, így a hiányzó érték elkülönül egy kifejezett false értéktől

Az olvasó sosem hajt végre műveletet és sosem követ korlátlan gráfot

Hibás bejegyzések, ciklusok, ismétlődő megosztott csomópontok, 64 feletti mélység, 4096 feletti csomópontszám és túlméretezett /Next tömbök a Malformed és Issue mezőkön át diagnosztikai rekordokat adnak vissza

Jegyzet-láthatósági eseményindítók

A THPDFAnnotationActionTrigger és a THPDFAnnotationJavaScriptTrigger tartalmazza az oldal-nyitás /PO, oldal-zárás /PC, oldal-látható /PV és oldal-láthatatlan /PI bejegyzéseket

Ez a négy eseményindító a PDF 1.5-öt kezeli, miközben a meglévő egér- és fókusz-műveleti eseményindítók megtartják korábbi verziókövetelményeiket

Lásd még