質問

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 また、セキュリティ制限の対象となり、「特権的な」コンテキスト(バッチまたはコンソール)でのみ呼び出すことができます。したがって、これも機能しません。

要するに、セキュリティ制限により、ユーザーに尋ねずにドキュメントを保存することができなくなります。あなたがそれについて考えるなら、それは論理的です。

見る: Acrobat JS APIリファレンス

他のヒント

リンクまたはコード以下で使用されるPDFデータを保存するクライアントサイドコード。それはあなたが入れる必要があるクライアント側の信頼できる機能です C:\Program Files\Adobe\...\JavaScript\Config.js.

Acrobat JavaScriptでPDFを保存する方法

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;
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top