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