Kiểm tra đồ thị hành động và điều hướng GoToE

THPDFActionBuilder tạo các hành động GoToE của PDF 1.6 cho các đích bên trong các tài liệu PDF nhúng hoặc liên quan, trong khi API hành động đã tải đọc toàn bộ 18 loại con hành động PDF chuẩn mà không thực thi chúng

Trình xây dựng GoToE

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;

Xây dựng mỗi mục đường dẫn đích bằng HPDFEmbeddedParentTarget, HPDFEmbeddedFileTarget, hoặc một overload của HPDFEmbeddedAnnotationTarget

Một mục con được chọn thông qua cây tên EmbeddedFiles ghi /R /C cộng thêm /N, trong khi mục con chú thích tệp đính kèm ghi /R /C cộng thêm cặp /P và /A bắt buộc

Các mục cha chỉ ghi /R /P, các mục lồng nhau trở thành từ điển /T đệ quy, và RootFileName để trống yêu cầu một đường dẫn đích không trống

Ví dụ Delphi

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;

Đồ thị hành động đã tả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;

Mảng được trả về tuân theo thứ tự thực thi: hành động cha xuất hiện trước, theo sau là từng từ điển /Next hoặc thành viên mảng theo thứ tự depth-first có sắp xếp

THPDFLoadedActionInfo.Kind xác định GoTo, GoToR, GoToE, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript, SetOCGState, Rendition, Trans, hoặc GoTo3DView

Các toán hạng cốt lõi được giải mã thành các trường đích, tệp, URI, JavaScript, mục tiêu, thao tác, cờ, tập, giá trị boolean tùy chọn và đối tượng liên quan

NewWindow sử dụng obAbsent, obFalse, hoặc obTrue để một giá trị thiếu vẫn khác biệt với một giá trị false tường minh

Trình đọc không bao giờ thực thi một hành động và không bao giờ theo dõi một đồ thị không giới hạn

Các mục sai định dạng, chu trình, các nút dùng chung lặp lại, độ sâu trên 64, số lượng nút trên 4096, và các mảng /Next quá lớn trả về các bản ghi chẩn đoán thông qua Malformed và Issue

Trình kích hoạt hiển thị chú thích

THPDFAnnotationActionTrigger và THPDFAnnotationJavaScriptTrigger bao gồm các mục mở trang /PO, đóng trang /PC, trang nhìn thấy /PV, và trang không nhìn thấy /PI

Bốn trình kích hoạt này đàm phán với PDF 1.5, trong khi các trình kích hoạt hành động chuột và tiêu điểm hiện có giữ lại các yêu cầu phiên trước đó của chúng

Xem thêm