我有一个用例,从 IIS / MVC 下载 PDF 表单,由最终用户填写并提交回服务器。成功提交 FDF 响应后会触发文档保护以禁止更改文档。保护由文件夹级 javascript 函数激活:
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.getSecurityPolicies:7:Doc undefined:Exec
使用 Acrobat Pro DC 时,安全性已成功应用。我已将安全设置从 Pro DC 导出到 Reader DC。我在这里缺少什么?