Поле Mailmerge не всегда сохраняется одинаково в Word .docx
Я создал документ Word с Word 2003 и вставил некоторые MergeField через графический интерфейс. Я сохранил его в формате.docx с помощью пакета обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoint 2007. Некоторые поля слияния хранятся как SimpleField, а другие хранятся как FieldCode (с start-FieldChar и end-FieldChar). Какой-то гугл привел меня в этот блог. Как вы можете видеть, парень сталкивается с той же проблемой; но пока не нашел решения.
Я использую следующий пример кода в Codeplex [Fill Mergefields], чтобы заменить MergeFields фактическими значениями из разных источников данных.
Любая помощь приветствуется.
1 ответ
Если значением поля является простой текст с постоянным форматированием, оно может быть сохранено как узел fldSimple. Однако, если значение поля имеет различное форматирование, оно должно быть сохранено как сложное поле (fldChar Start, Optional Separate и End), чтобы каждый прогон в пределах значения поля мог иметь свое различное форматирование, определенное в свойствах прогона. <w:rPr>
, Я думаю, что это также происходит, если слово использует rsid
атрибуты для отслеживания изменений. FldChar Start/Separate/End также необходимы, если поля являются вложенными, например, несколько полей IF, чтобы можно было хранить произвольное число <w:r>
, <w:p>
, <w:tbl>
в качестве значения поля.
И иногда он хранит их таким образом, по-видимому, без веской причины. (Как отметил этот блог).