Acrobat中的JavaScript保存和退出按钮
-
19-09-2019 - |
题
我在杂技演员亲创建一个可写的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
还受到安全限制,它只能在“特权”上下文(分批或控制台)被调用。因此,这将不能工作。
在短,安全限制会阻止您保存文档,而无需询问用户。如果你想想看,这是合乎逻辑的。
其他提示
客户端侧的代码来保存下面链路或代码中使用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;
});
不隶属于 StackOverflow