property JavaScriptActionCount: Integer; // read only
Возвращает количество действий JavaScript, объявленных на уровне документа —
обычно это записи под деревом имен каталога /Names /JavaScript
(раздел 12.6.4.16 спецификации PDF 1.7) плюс записи уровня документа
OpenAction, DA, WC, WS,
DS, WP, DP, когда их словари действий
содержат поток JS. Скрипты уровня поля и аннотации не входят;
они живут в словарях аннотаций или полей AcroForm
Значение равно 0, когда документ не загружается, когда
Active равно False или когда PDF просто не содержит
скриптов на уровне документа. Используйте JavaScriptAction[Index],
чтобы получить одну запись как запись TPdfJavaScriptAction
(Name + Script source), или JavaScriptActions, чтобы материализовать
весь массив за один вызов
Чтение этого свойства стоит недорого — PDFium только проходит по дереву имен, не выполняя ни одного скрипта. PDFiumPas не исполняет JavaScript; возвращаемые строки являются чистыми данными для просмотра, полезными для forensic analysis, удаления скриптов перед распространением или показа предупреждения «Document contains JavaScript» пользователю
JavaScriptActions, когда нужен только счетчик или одна записьName допустимы — PDF разрешает безымянные словари
действий (например, OpenAction). Не полагайтесь и на уникальность Name
// Warn the user if the PDF carries embedded JavaScript.
if Pdf1.JavaScriptActionCount > 0 then
if MessageDlg('This document contains JavaScript. Open anyway?',
mtWarning, [mbYes, mbNo], 0) = mrNo then
Pdf1.Active := False;