Word Interop: настройка doc.Bookmarks ("BookmarkName"). Range.Text вызывает исчезновение водяного знака и других элементов шаблона из документа - PullRequest
0 голосов
/ 28 апреля 2011

Я автоматизирую Word из VB.Net.

Я открываю документ по:

Dim msWord as Word.Application = CreateObject("Word.Application")
Dim doc As Word.Document = msWord.Documents.Add(Template:=Path)

, где путь указывает на созданный мной файл шаблона с заголовком и водяным знаком.В шаблоне есть несколько закладок, которые я хочу динамически установить в соответствующие текстовые значения:

doc.Bookmarks("DocumentTitle").Range.Text = "The Joy of Office Automation"

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

FWIW, это Office Word 2007, и я открываю шаблон .Dot (Word 97-2003).Я установил параметр Bookmark.Range.Text в заголовке документа.

Гуру Office Automation, что я делаю не так?

Спасибо, Джеральд

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Я обнаружил еще немного информации: водяной знак исчезает только в том случае, если рассматриваемая закладка находится в самой первой позиции в заголовке документа. Установка любой другой закладки в документе не приводит к исчезновению водяного знака. Добавление даже одного пробела перед рассматриваемой закладкой предотвратит исчезновение водяного знака, когда задан текст диапазона.

0 голосов
/ 04 мая 2011

Моя первая мысль, возможно, каким-то образом у вас есть водяной знак, связанный с диапазоном, который закладка "отмечает". Если вы затем замените этот диапазон другим текстом, поп! водяных знаков больше нет.

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

Возможно ли, что закладка охватывает разрыв раздела? Если для водяного знака установлен определенный раздел, а замена закладки стирает разрыв раздела, вы потеряете все в этом разделе (включая, возможно, верхние и нижние колонтитулы, поля и т. Д.).

...