Франческо, я должен предупредить тебя. @SLaks правильно, потому что вы действительно не можете использовать Word Automation на сервере. Нет, правда. Мы серьезно.
Есть две причины:
Во-первых, Word - невероятно сложная часть программного обеспечения, разработанная для использования интерактивным пользователем. Он не был запрограммирован или протестирован для использования в серверной среде, и не работает правильно при работе под неинтерактивной учетной записью (как это делают службы). Рано или поздно он упадет или замерзнет. Я видел это. Я не говорю обязательно об ошибках. Word будет делать то, что требует полной учетной записи пользователя; или где Word ожидает, что кто-то будет нажимать на окна сообщений. Этого не избежать.
Во-вторых, даже если вам удастся заставить его делать то, что вы хотите, оказывается, что лицензия Office явно запрещает вам запускать Word таким образом.
Теперь исключительно с точки зрения автоматизации:
Word на самом деле не манипулирует «страницами». «Страницы» - это лишь побочный эффект любого выбранного принтера. Перенесите один и тот же файл на другой компьютер с другим принтером и / или драйвером, и нумерация страниц может измениться. На больших документах изменится .
Да, в большинстве случаев разрывы страниц не перемещаются (часто), особенно если у вас есть документ, представляющий собой набор не совсем полностраничных форм, но я не пытаюсь быть привередливым: дело в том, что объектная модель документа Word не очень поможет вам манипулировать «страницами», потому что они не первоклассный гражданин, а случайное форматирование.
Полагаю, лучше всего было бы использовать разрывы разделов между страницами, вместо того, чтобы позволить автозапуску страниц; Таким образом, у вас есть что-то, за что можно взять объектную модель.
Вы можете использовать коллекцию ActiveDocument.Sections
, чтобы найти свои ... ahem ... 'pages' (на самом деле, section
объекты), а затем использовать метод Range
(чтобы извлечь Range
объект) и метод ExportAsFixedFormat
для экспорта этого диапазона в PDF.
Если вы хотите вместо этого документ Word, я не думаю, что объектная модель позволяет вам сохранить часть документа как отдельный документ. Однако вы можете легко скопировать и вставить диапазон в новый документ и сохранить его вместо этого.