2015-12-20 4 views
0

Я искал пример того, как вызвать доверенную функцию в acroforms и havent found any. Я пытаюсь создать форму для своей компании, которая позволит пользователям нажимать кнопку и автоматически сохранять форму в папку на нашем сервере (например: // SERVER1/Forms /). Я нашел этот код, чтобы проверить с и поместили его в C: \ Program Files (x86) \ Adobe \ Acrobat Reader DC \ Читатель \ JavascriptsКак вызвать доверенную функцию от acroform

//SaveAs Function1 

var date = new Date(); 
var day = date.getDate(); 
var month = date.getMonth()+1; 
var year = date.getFullYear(); 
var dateSigned = String(month) + String(day) + String(year); 

var mySaveDoc = app.trustedFunction(function(doc,fileNam­e){ 
app.beginPriv(); 

var myPath = "C/test/" + fileName + "Agreement " + dateSigned + ".pdf"; 


//saveAs is the only privileged code that needs to be enclosed 
doc.saveAs({cPath: myPath, bCopy: true, bPromptToOverwrite: false}); 
//doc.close(); 

app.endPriv(); 
}); 

Любая помощь на создание этой работы высоко оценили !!

ответ

0

Я думаю, что расположение сценария уровня приложения верное; проверьте, есть ли у вас другие файлы в этой папке; один из них был бы прекомпилированным, исходя из Adobe.

Теперь для вызова функции доверенного, ну ..., назовем его, как вы могли бы назвать любую другую функцию:

mySaveDoc(this, fileName) ; 

и что должны делать это.

Однако, есть несколько вопросов, которые мне не нравится, что многое в сценарии на уровень приложений:

dateSigned переменные и его биты и куски будут определены и инициализируются при запуске приложения, а затем сохранить их значение. Другими словами, если вы постоянно держите Reader, дата не будет обновляться. Чтобы получить текущую дату все время, вам нужно будет инициализировать переменную dateSigned внутри функции. И, поскольку вы находитесь в JavaScript Acrobat, вы можете использовать объект util для сборки строки.

Ваш сценарий будет выглядеть следующим образом:

var mySaveDoc = app.trustedFunction(function(doc, fileName){ 
app.beginPriv() ; 
var dateSigned = util.printd("MMDDYYYY", new Date() ; 
var myPath = "/C/test" + filename + "Agreement " + dateSigned + ".pdf" ; 
doc.saveAs({cPath: myPath, bCopy: true, bPromptToOverwrite: false}) ; 
app.endPriv() ; 
}) ; 

Обратите внимание, что есть ALS слэш в начале пути (хотя я могу ошибаться, что, так как я не иметь доступ к Windows machine, я не могу это проверить, если кто-то другой будет использовать Acrobat, откройте любой файл, а затем запустите this.path() с консоли, тогда он сможет подтвердить косую черту (или нет)).

+0

Благодарим за помощь! Есть ли способ форматировать dateSigned var в YYYYMMDD? – JB11

+0

Абсолютно; на самом деле у вас уже есть строка формата (YYYYMMDD). Дополнительные сведения о util.scand() см. В документации по Acrobat JavaScript, которая является частью документации Acrobat SDK, загружаемой с веб-сайта Adobe. –

Смежные вопросы