2009-10-06 2 views
3

Я пытаюсь создать библиотеку для замены MergeFields в документе Word 2003, все работает отлично, за исключением того, что я теряю стиль, применяемый к полю, когда я его заменяю , есть способ сохранить его?Заменить MergeFields в документе Word 2003 и сохранить стиль

Это код, я использую, чтобы заменить поля:

Я попытался с помощью CopyFormat и PasteFormat методов в селекции, а также с помощью get_style и set_style, но ни к какому exent.

ответ

6

Вместо использования TypeText поверх вашего выбора используйте Результат свойства поля:

  if (values.ContainsKey(fieldName)) 
      { 
      mergeField.Result = (values[fieldName]); 
      } 

Это обеспечит любое форматирование в поле сохраняется.

+3

Hi Это очень помогло! Благодарю. Хотя, правильный формат: mergeField.Result.Text = (значения [fieldName]). Потому что тип результата «Диапазон». Большое спасибо – willvv

+0

Да, f.Result.Text, как вы говорите, абсолютно. – hawbsl

+0

Хотя он работает, результат не такой, как предполагалось. Мой код '{MERGEFIELD ClientName * Upper}'. Однако после запуска слияния он не отображает верхний регистр имени клиента. Вы можете мне помочь? Спасибо. –