Acrobat JavaScript Save & Exit кнопка
-
19-09-2019 - |
Вопрос
У меня есть писательская форма PDF, созданная в Acrobat Pro. Теперь я добавил кнопку, которая должна изменить значение поля, сохранить PDF и закрыть ее.
Я решил сделать это следующим образом:
var fieldX = this.getField("xxxxField");
fieldX.value = 1;
app.execMenuItem("Save");
this.closeDoc(true);
Но это не спасает PDF.
Я не хочу иметь диалог подтверждения. Я видел saveAs
функционируйте в API, но как получить реальную дорожку вкл. Имя файла текущего документа редактирования? Или у вас есть другие подходы?
благодарю вас.
Решение
Но это не спасает 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;
});