Eylem Grafiği İncelemesi ve GoToE Gezinmesi
THPDFActionBuilder, gömülü veya ilişkili PDF belgeleri içindeki hedefler için PDF 1.6 GoToE eylemleri oluştururken, yüklenmiş eylem API'si 18 standart PDF eylem alt türünü bunları çalıştırmadan okur
GoToE oluşturucuları
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;
Her hedef yolu girişini bir HPDFEmbeddedParentTarget, HPDFEmbeddedFileTarget veya HPDFEmbeddedAnnotationTarget aşırı yüklemesi ile oluşturun
EmbeddedFiles ad ağacı aracılığıyla seçilen bir alt öğe /R /C artı /N yazarken, bir ek açıklama alt öğesi /R /C artı zorunlu /P ve /A çiftini yazar
Üst girişler yalnızca /R /P yazar, iç içe girişler özyinelemeli /T sözlükleri olur ve boş bir RootFileName boş olmayan bir hedef yolu gerektirir
Delphi örneği
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;
Yüklenmiş eylem grafiği
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;
Döndürülen dizi yürütme sırasını izler: üst eylem önce görünür, ardından sıralı derinlik öncelikli düzende her /Next sözlüğü veya dizi üyesi gelir
THPDFLoadedActionInfo.Kind, GoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans veya GoTo3DView öğesini tanımlar
Çekirdek işlenenler hedef, dosya, URI, JavaScript, hedef, işlem, bayrak, birim, isteğe bağlı boole ve ilişkili nesne alanlarına deşifre edilir
NewWindow, obAbsent, obFalse veya obTrue kullanır; böylece eksik bir değer açık bir false değerinden ayrı kalır
Okuyucu hiçbir zaman bir eylemi çalıştırmaz ve hiçbir zaman sınırsız bir grafiği izlemez
Bozuk girişler, döngüler, yinelenen paylaşılan düğümler, 64'ü aşan derinlik, 4096'yı aşan düğüm sayısı ve aşırı büyük /Next dizileri Malformed ve Issue aracılığıyla tanılama kayıtları döndürür
Ek açıklama görünürlük tetikleyicileri
THPDFAnnotationActionTrigger ve THPDFAnnotationJavaScriptTrigger, sayfa açma /PO, sayfa kapatma /PC, sayfa görünür /PV ve sayfa görünmez /PI girişlerini içerir
Bu dört tetikleyici PDF 1.5 için görüşürken, mevcut fare ve odak eylem tetikleyicileri daha önceki sürüm gereksinimlerini korur