2015-04-05 2 views
1

В целях тестирования я пытаюсь создать PDF, который после открытия автоматически закрывается и закрывает Acrobat Reader. Аналогично наличию макроса Auto_Open в Word, который выполняет: Application.Quit.Autoclose Macro в PDF

У меня есть Acrobat Professional 9.0, но я не вижу, как это сделать. Тем не менее, я вижу обсуждения «Действия» (Acrobat Macros) на веб-сайте Acrobat.

Спасибо.

ответ

3

действия не совсем то, что вы ищете ...

И Acrobat/Читатель не может полностью сделать то, что вы просите его ... По соображениям безопасности, не представляется возможным программно завершить программу Acrobat/Reader. Итак, Бросить нельзя; все, что вы можете сделать, это закрыть документ.

Для этого вы должны использовать JavaScript для Acrobat. Чтобы убедиться, что это действительно работает, я предлагаю сначала попробовать двухстраничный документ. На второй странице, добавьте следующий PageOpen скрипт (в дальнейшем, вы можете сделать это с первой страницы тоже):

this.dirty = false ; 
this.closeDoc() ; 

Вы создаете PageOpen скрипт отображения tumbnails страницы, а затем выберите в контекстном меню страницы, к которой вы хотите получить доступ. Там вы откроете диалоговое окно «Свойства страницы» и перейдите на вкладку «Действия страницы». Выберите Запустить JavaScript как действие для PageOpen и добавьте код выше.

Update, после комментария Нил Weicher:

Если вы хотите отложить закрытие, вы можете использовать метод setTimeOut(), как показ в этом примере (который также использует аргумент для закрытия документа, не спрашивая ли сохранить (эквивалент установки грязный флаг ложно); задержка составляет 5 секунд (5000 миллисекунд)):

myDelay = app.setTimeOut("this.closeDoc(true) ; app.clearTimeOut(myDelay) ;" , 5000) ; 

Примечание: хотя объект тайм-аута должны получить сброса, когда документ закрывается, это безопаснее сделать это в отложенном скрипте.

И это должно быть сделано.

+0

Спасибо за отзыв. команда выглядит как _this.closeDoc() _, а не this.close. Интересно, что он закрывает Acrobat.exe, но не AcroRd32.exe. Интересно, почему это так? Одна вещь, которую я пытаюсь добавить к ней, - это 5-секундная задержка перед выполнением closeDoc. Я попытался добавить это перед closeDoc, но он, кажется, игнорирует его: _this.timeDelay = 5; _ –

+0

Спасибо, что указали на ошибку о closeDoc; Я исправил это в ответе. Я также добавил правильный код для задержки. (timeDelay не является Acrobat JavaScript). –

+0

Я нашел действие меню File.Exit. Я добавил для него отдельный вопрос, поскольку это кажется немного другой темой. http://stackoverflow.com/questions/29470866/cannot-execute-file-exit-action-in-acrobat-pdf –

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