Toimintograafin tarkastus ja GoToE-navigointi

THPDFActionBuilder luo PDF 1.6 GoToE-toimintoja upotettujen tai sukulaisten PDF-dokumenttien sisäisille kohteille, kun taas ladattujen toimintojen API lukee kaikki 18 PDF-toimintojen vakioalatyyppiä suorittamatta niitä

GoToE-rakentajat

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;

Rakenna jokainen kohdepolun alkio HPDFEmbeddedParentTarget-, HPDFEmbeddedFileTarget- tai HPDFEmbeddedAnnotationTarget-ylikuormituksella

EmbeddedFiles-nimipuun kautta valittu lapsi kirjoittaa /R /C plus /N, kun taas liitehuomautuksen lapsi kirjoittaa /R /C plus vaaditun /P- ja /A-parin

Vanhempialkiot kirjoittavat vain /R /P, sisäkkäiset alkiot muuttuvat rekursiivisiksi /T-sanakirjoiksi, ja tyhjä RootFileName vaatii ei-tyhjän kohdepolun

Delphi-esimerkki

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;

Ladattu toimintograafi

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;

Palautettu taulukko noudattaa suoritusjärjestystä: vanhempi toiminto tulee ensin, sen jälkeen kukin /Next-sanakirja tai taulukon jäsen järjestyksessä syvyyssuuntaisesti

THPDFLoadedActionInfo.Kind tunnistaa GoTo-, GoToR-, GoToE-, Launch-, Thread-, URI-, Sound-, Movie-, Hide-, Named-, SubmitForm-, ResetForm-, ImportData-, JavaScript-, SetOCGState-, Rendition-, Trans- tai GoTo3DView-toiminnon

Ydinoperandit dekoodataan kohde-, tiedosto-, URI-, JavaScript-, kohde-, operaatio-, lippu-, äänenvoimakkuus-, valinnainen totuusarvo- ja sukulaissoliokentiksi

NewWindow käyttää arvoja obAbsent, obFalse tai obTrue, joten puuttuva arvo pysyy erillisenä nimenomaisesta false-arvosta

Lukija ei koskaan suorita toimintoa eikä seuraa rajoittamatonta graafia

Väärän muotoiset alkiot, syklit, toistuvat jaetut solmut, yli 64:n syvyys, yli 4096:n solmumäärä sekä liian suuret /Next-taulukot palauttavat diagnostisia tietueita kenttien Malformed ja Issue kautta

Huomautusten näkyvyyslaukaisimet

THPDFAnnotationActionTrigger ja THPDFAnnotationJavaScriptTrigger sisältävät sivun-avaus-/PO-, sivun-sulku-/PC-, sivun-näkyvä-/PV- ja sivun-näkymätön-/PI-alkiot

Nämä neljä laukaisinta neuvottelevat PDF 1.5:n, kun taas olemassa olevat hiiri- ja kohdistustoimintojen laukaisimet säilyttävät aiemmat versiovaatimuksensa

Katso myös