Создание PDF с использованием Word VBA и Adobe Acrobat - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь написать макрос, который создает PDF-документ Word.

Код, который я использовал для этого, использует ActiveDocument.ExportAsFixedFormat. Это работает до некоторой степени, но, как правило, происходит сбой при создании PDF-файла большого документа (и некоторые документы, которые я буду обрабатывать с помощью этого макроса, будут выполняться на тысячах страниц).

Насколько я понимаю, метод ExportAsFixedFormat использует встроенные в Word методы создания PDF. Что я действительно хочу сделать, это использовать Adobe Acrobat для преобразования PDF. Если я делаю это вручную, нажимая кнопки экспорта в формате PDF в Word (на моем компьютере установлен Adobe Acrobat), то все в порядке. Он использует фактическое преобразование Adobe Acrobat PDF, и мой PDF создается без ошибок даже на документах, достаточно больших, чтобы вызвать сбой метода ExportAsFixedFormat.

Я пытался выяснить, как автоматизировать преобразование в PDF из VBA с помощью Acrobat и ударить головой о кирпичную стену.

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

https://forums.adobe.com/thread/286431

И действительно, когда я попробовал, это не сработало.

Затем я обнаружил объекты AcroExch.AVDoc и AcroExch.PDDoc, которые выглядели так, как будто это может быть другой путь. Смотрите, например, здесь:

https://forums.adobe.com/thread/301714

Это также пришло с предупреждением, что оно не поддерживается. Когда я попробовал это, это работало, но это было мучительно медленно, даже с документами всего в несколько страниц. Я не хочу думать, как это будет с документом на 5000 страниц.

Возможно ли это сделать? Не похоже, что это должна быть ракетостроение, но я не могу найти ничего, что работает.

Все, что я хочу сделать, это надежно создавать PDF-файлы из больших документов Word. Я думаю, что, вероятно, способ сделать это, чтобы выяснить, как использовать инструменты Adobe через VBA (есть ли поддерживаемый метод?), Но я был бы очень доволен встроенным методом Word, если бы я мог решить проблему с ним ошибка при работе с большими документами.

Большое спасибо за любую помощь.

Редактировать: я должен был также упомянуть, что мне нужны заголовки Word, чтобы они заканчивались закладками PDF. Это делает метод ExportAsFixedFormat, но некоторые другие методы этого не делают.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Немного поиграв, я нашел один метод, который официально поддерживается и использует создатель Adobe PDF:

ActivePrinter = "Adobe PDF"
ActiveDocument.PrintOut

Проблема в том, что мои заголовки Word не превращаются в закладки PDF.

Кто-нибудь знает, возможно ли установить некоторые параметры в этом коде, чтобы он это делал?

0 голосов
/ 28 июня 2018

Вы можете использовать метод SaveAs или SaveAs2 для сохранения в формате PDF вместо ExportAsFixedFormat. Например:

ActiveDocument.SaveAs FileName: = "Filename.pdf", FileFormat: = wdFormatPDF

...