У меня есть вариант использования, когда форма PDF загружается из IIS/MVC, заполняется конечным пользователем и отправляется обратно на сервер. После успешного отправки ответа FDF срабатывает защита документов, чтобы запретить внесение изменений в документ. Защита активируется уровень папок функции JavaScript:Уровень папки Adobe JS работает на Acrobat Pro DC, но не разрешен в Acrobat Reader DC
function applySecurity()
{
var DoApplyMySecurity = app.trustedFunction(function(){
var oMyPolicy = null;
app.beginPriv();
// First, Get the ID of My Security Policy
var aPols = security.getSecurityPolicies()
for(var index=0;index<aPols.length;index++){
if(aPols[index].name == "AgreementPolicy"){
oMyPolicy = aPols[index]; break;
}
}
if(oMyPolicy == null){ app.alert("Policy Not Found"); return; }
// Now, Apply the security Policy
var rtn = this.encryptUsingPolicy({oPolicy: oMyPolicy });
if(rtn.errorCode != 0) app.alert("Security Error: " + rtn.errorText);
app.endPriv();
});
DoApplyMySecurity();
}
Функция уровня документа вызывает описанную выше функцию следующим образом:
function valuesSaved(msg)
{
app.alert(msg);
applySecurity();
app.execMenuItem("Save");
app.execMenuItem("Close");
}
Проблема заключается в том, что при отправке формы с помощью Acrobat Reader DC происходит следующее сообщение об ошибке:
NotAllowedError: Security settings prevent access to this property or method. Security.getSecurityPolicies:7:Doc undefined:Exec
При использовании защиты Acrobat Pro DC применяется успешно. Я экспортировал настройки безопасности с Pro DC на Reader DC. Что мне здесь не хватает?