我在杂技演员亲创建一个可写的pdf格式。现在,我添加了有可能改变一个字段的值,保存PDF和关闭按钮。

我决定这样做如下:

var fieldX = this.getField("xxxxField");
fieldX.value = 1;
app.execMenuItem("Save");
this.closeDoc(true);

但是,这并不保存PDF。

我不希望有一个确认对话框。我看到了API中的saveAs功能,但如何才能获得真正路径含。在当前编辑文件的文件名?或者你有什么其他办法?

感谢您。

有帮助吗?

解决方案

  

但是,这并不保存PDF。

这是因为有防止app.execMenuItem("Save");从工作的安全限制。不允许你通过JS调用保存。

  

功能的API中,但如何才能获得真正路径含。在当前编辑文件的文件名?或者你有什么其他办法?

您可以使用Doc.path来获得当前文档,包括它的文件名的路径(和Doc.documentFilename给你的文件名只)。

然而,saveAs还受到安全限制,它只能在“特权”上下文(分批或控制台)被调用。因此,这将不能工作。

在短,安全限制会阻止您保存文档,而无需询问用户。如果你想想看,这是合乎逻辑的。

请参阅:的Acrobat JS API参考

其他提示

客户端侧的代码来保存下面链路或代码中使用PDF数据。它的客户端信任的,你需要把C:\Program Files\Adobe\...\JavaScript\Config.js.功能

如何保存PDF使用Acrobat JavaScript的

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