property JavaScriptActions: TPdfJavaScriptActions; // read only
JavaScriptActions 會把每個文件層級 JavaScript 動作具體化為
單一動態陣列,元素為 TPdfJavaScriptAction 記錄。每筆記錄帶有
動作名稱(通常是 Catalog 的 /Names /JavaScript 名稱樹中的
條目鍵,例如 OpenAction、App.calc)
以及解碼為 WString 的指令碼原始碼,
陣列長度等於 JavaScriptActionCount
當 Active 為 False 或 PDF 不含
文件層級指令碼時,結果為空。需要每個條目時,JavaScriptActions 比逐一
循環 JavaScriptAction[Index] 更方便 — 一次配置、
一次解析,可直接分組或篩選。指令碼集合非常龐大時,
建議改用索引存取子,避免預先具體化每個指令碼主體
PDFium Delphi Component 僅將指令碼公開為檢視資料 — 不會執行、
沙箱化或轉換它們。可用此陣列顯示「包含 JavaScript」警告、
在重新散布前剝除指令碼(結合低階 FPDFDoc_* 變更行程),
或餵送給外部分析器。欄位層級與
註解層級指令碼位於其他位置,不屬於此陣列
OpenAction)Length(Result) = 0 可快速檢查「無 JS」,
無需另行計算計數
var Scripts: TPdfJavaScriptActions;
var I: Integer;
Scripts := Pdf1.JavaScriptActions;
for I := 0 to High(Scripts) do
Memo1.Lines.Add(Format('[%s] %s',
[Scripts[I].Name, Scripts[I].Script]));