Acrobat JavaScript保存と終了ボタン
-
19-09-2019 - |
質問
Acrobat Proで作成されたPDFフォームが作成されています。次に、フィールド値を変更し、PDFを保存して閉じる必要があるボタンを追加しました。
私はこれを次のようにすることにしました:
var fieldX = this.getField("xxxxField");
fieldX.value = 1;
app.execMenuItem("Save");
this.closeDoc(true);
しかし、これはPDFを節約しません。
確認ダイアログはありません。私が見ました saveAs
APIで機能しますが、実際のパスを含む方法を取得する方法。現在の編集ドキュメントのファイル名?それとも他にアプローチはありますか?
ありがとうございました。
解決
しかし、これはPDFを節約しません。
それは、防止するセキュリティ制限があるからです app.execMenuItem("Save");
働くことから。 JS経由でSaveを呼び出すことは許可されていません。
APIで機能しますが、実際のパスを含む方法を取得する方法。現在の編集ドキュメントのファイル名?それとも他にアプローチはありますか?
使用できます Doc.path
ファイル名を含む現在のドキュメントのパスを取得する(および Doc.documentFilename
ファイル名のみを与えます)。
でも、 saveAs
また、セキュリティ制限の対象となり、「特権的な」コンテキスト(バッチまたはコンソール)でのみ呼び出すことができます。したがって、これも機能しません。
要するに、セキュリティ制限により、ユーザーに尋ねずにドキュメントを保存することができなくなります。あなたがそれについて考えるなら、それは論理的です。
他のヒント
リンクまたはコード以下で使用されるPDFデータを保存するクライアントサイドコード。それはあなたが入れる必要があるクライアント側の信頼できる機能です C:\Program Files\Adobe\...\JavaScript\Config.js.
1)フォルダーレベルでデータを保存するコード。
var mySaveAs = app.trustedFunction ( function(oDoc,cPath,cFlName)
{
app.beginPriv();
var flag=false;
cPath = cPath.replace(/([^\/])$/, "$1/");
if(cPath.indexOf("http://") !== -1 || cPath.indexOf("https://") !== -1)
{
cPath = cPath.replace('http://', "\\\\");
cPath = cPath.replace('https://', "\\\\");
while(cPath.indexOf("/") !== -1)
{
cPath = cPath.replace('/', "\\\\");
}
}
if(cPath.indexOf(":") !== -1)
{
cPath = cPath.replace(":","@");
}
try{
oDoc.saveAs(cPath + cFlName);
flag = true;
}catch(e){
app.alert("Error During Save");
}
app.endPriv();
return flag;
});
2)SharePointでデータを保存するコード。
var mySaveAs = app.trustedFunction ( function(oDoc,cPath,cFlName)
{
app.beginPriv();
var flag=false;
try{
app.execMenuItem("Save");
flag = true;
}catch(e){
app.alert("Error During Save");
}
app.endPriv();
return flag;
});