
Мне нужно настроить PDF-файл, отвечающий следующим критериям:
- Содержит прикрепленные PDF-файлы
- Прикрепленные PDF-файлы можно открыть с помощью ссылки (или аналогичного объекта) внутри самого документа.
- Открытие нового документа не закрывает основной документ.
- Эти функции должны работать корректно, без необходимости изменения предпочтений потенциальных получателей.
(Я использую Adobe Acrobat IX Pro)
Чтобы сэкономить время, вот что мне удалось сделать на данный момент:
Подход Microsoft Word:
- Прикрепить PDF-файлы в документе Word
- Конвертировать документ Word в PDF
- Ссылки PDF становятся изображениями и больше не работают
Подход Adobe Acrobat:
- Создать ссылку
- Выберите действие «Перейти к просмотру страницы».
- Откройте нужный PDF-файл из панели вложений.
- Нажмите «Установить вид страницы».
Это открывает новый документ, но закрывает основной PDF. Решение этой проблемы — перейти в Edit->Preferences->Documents и снять флажок Open cross-document links in same window. Проблема с этим решением в том, что оно работает только на моем компьютере, и оно будет отправлено многим людям, которые не будут знать, что нужно изменить свои настройки.
Любые идеи будут высоко оценены!
решение1
У меня нет Acrobat XI, у меня есть Acrobat DC 2015, но я думаю, что он должен работать аналогично.
- Откройте ваш PDF-документ и перейдите на панель «Вложения» в левой части пользовательского интерфейса Acrobat. Панель «Вложения» представлена значком скрепки.
- После отображения панели «Вложения» щелкните значок меню и выберите добавление вложения.
- Теперь перейдите к файлу, который вы хотите прикрепить, выберите его и нажмите «ОК». Теперь это должно показать вам новое вложение на панели «Вложения».
Теперь у вас есть прикрепленный файл, но вы хотите иметь в PDF-файле кнопку, которая будет открывать прикрепленный файл в его собственном окне/вкладке. Поэтому сделайте следующее:
- Выберите вкладку «Инструменты», а затем используйте поле поиска в верхней части этого диалогового окна для поиска «Кнопка». Acrobat сообщит нам, где находится инструмент «Добавить кнопку».
- Нажмите на результат поиска «Добавить кнопку». Это перенесет нас прямо в набор инструментов «Rich Media» с выбранным инструментом «Кнопка». Это означает, что теперь мы можем разместить кнопку на странице PDF, переместив ее в нужное место, а затем щелкнув, чтобы разместить ее.
- В это время инструмент кнопки все еще выбран, и мы можем дважды щелкнуть по кнопке, чтобы открыть диалоговое окно ее свойств. Здесь нам нужно внести изменения, чтобы дать этой кнопке возможность запускать прикрепленный документ Word.
- Выберите вкладку «Действия» (1), затем выберите создание действия «Мышь вверх» (2), выберите запуск JavaScript (3) и нажмите кнопку «Добавить» (4). Это вызовет редактор JavaScript. Здесь нам нужно добавить однострочный скрипт.
- Этот скрипт вызовет метод Doc.exportDataObject(). Вы можете найти больше информации об этом методе JavaScript здесь: Acrobat JavaScript API – Doc.exportDataObject() Хитрость здесь заключается в использовании параметра «nLaunch», установленного на значение «2», которое имеет следующее описание:
Если значение равно 2, файл будет сохранен и затем запущен. Запуск предложит пользователю предупреждение безопасности, если файл не является PDF-файлом. Используется временный путь, и пользователю не будет предложено указать путь сохранения. Созданный временный файл будет удален Acrobat при завершении работы приложения.
Команда, которую мы используем, также должна ссылаться на имя вложения, которое в нашем случае является именем файла, который мы изначально импортировали:
this.exportDataObject({ cName: "attachment.docx", nLaunch: 2 });
- Теперь закройте редактор, нажав «ОК». И вот, у вас должен быть PDF с кнопкой, которая при нажатии запустит прикрепленный PDF.
решение2
Существует обходной путь для этой ужасной проблемы с открытием перекрестных ссылок документов в одном окне (скоро исполнится 15 лет с тех пор, как я сражаюсь с Adobe по поводу заводских настроек по умолчанию для этой опции… они все еще не хотят ее получать…).
Обходной путь — установить app.openInPlace
свойство на false
.
Теперь, когда вы меняете пользовательские настройки, это не совсем "хорошо" делать. В этой ситуации вы сделаете следующее:
В сценарии уровня документа вы считываете текущую настройку и сохраняете ее в переменной. В случае, если willClose
вы устанавливаете openInPlace
свойство обратно в эту переменную. Это будет выглядеть так:
а) в скрипте уровня документа:
var myOpenInPlaceSetting = app.openInPlace ;
app.openInPlace = false ;
б) в действии willClose Document:
app.openInPlace = myOpenInPlaceSetting ;
и этого должно хватить.