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 にエクスポートしました。ここで何が欠けていますか?