Можно ли обновить оглавление (TableOfContents) документа Word, созданного с помощью библиотеки DocIO от Syncfusion? - PullRequest
5 голосов
/ 21 октября 2010

Наше приложение генерирует документ Word, используя Syncfusion's DocIO libs. По сути, мы загружаем шаблон и вставляем в него определенные тексты в определенные закладки, создавая документ Word, который пользователь загружает на лету.

Проблема, с которой мы сталкиваемся:

  • Шаблон состоит из 4 страниц и имеет оглавление.
  • При добавлении контента размер документа в страницах увеличивается (естественно)
  • Когда документ загружен, оглавление по-прежнему отражает номера страниц, использованные в шаблоне. Другими словами, пользователь должен вручную обновить содержание (вторичный щелчок -> обновить поле), чтобы обновить номера страниц.

Согласно документации Syncfusion (чего мало ...) это невозможно с использованием их lib. Итак, мы внедрили макрос AutoOpen в шаблон, который обновляет оглавление, когда документ открывается в качестве обходного пути. Однако это вызывает предупреждение безопасности при открытии файла (из-за макроса), что делает наше использование неудобным.

У кого-нибудь из вас есть идея улучшить эту реализацию? Спасибо,

1 Ответ

11 голосов
/ 21 октября 2010

Попробуйте это

Document wordDocument;
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); 
wordDocument = word.Documents.Open(saveFileDialog.FileName);
wordDocument.TablesOfContents[1].Update();
wordDocument.Save();
word.Quit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...