Обновите оглавление в документе .docx, используя DocumentFormat.OpenXml (C #) - PullRequest
2 голосов
/ 19 декабря 2011

Я создаю новый текстовый документ, используя DocumentFormat.OpenXml.Я загружаю шаблон документа, в котором располагаются оглавление и таблица с картинным логотипом.Я добавляю другой контент, используя код C # для этого шаблона.Я отправляю этот документ пользователю.

Когда пользователь получает этот документ и открывает его - оглавление не обновляется.Я нашел решение этой проблемы.Я добавляю в свой код

  • mainPart.DocumentSettingsPart.Settings.Append (new UpdateFieldsOnOpen () {Val = true});

Но когда пользователь получит документ и откроет его, он получит сообщение из MS Word «Вы хотите обновить поля?».

Есть ли другой способ создать таблицу изсодержание или обновить оглавление без какого-либо сообщения пользователю?

Ответы [ 2 ]

0 голосов
/ 24 марта 2012

В аналогичной теме мы долго обсуждали создание Таблицы содержания (TOC) с помощью OpneXML SDK 2.0. И есть подробное решение, объясняющее, как этого можно достичь. Посмотрите на эту ветку для деталей: Как сгенерировать оглавление, используя OpenXML SDK 2.0?

0 голосов
/ 20 декабря 2011

Я получил ответ на мой вопрос: http://social.msdn.microsoft.com/Forums/en-US/worddev/thread/7f53a939-f50e-423d-90fa-1f3c58945a6e

Причиной того, что вы видите, является мера безопасности, которая была введена несколько лет назад.Возможно, вы можете подавить сообщение, используя запись реестра, описанную в следующей статье базы знаний.Однако вы должны знать, что это может снизить безопасность системы.

В следующей статье блога описан «правильный» способ обновления оглавления: http://support.microsoft.com/kb/330079

Кроме этого,единственной доступной вещью будет макрос, внедренный в документ или в надстройку, которая использует автоматизацию для принудительного обновления полей.

...