Поле Mailmerge не всегда сохраняется одинаково в Word .docx - PullRequest
2 голосов
/ 21 декабря 2009

Я создал документ Word с Word 2003 и вставил часть MergeField через графический интерфейс. Я сохранил его в формате .docx с помощью пакета обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoint 2007 . Некоторые поля слияния хранятся как SimpleField, а другие хранятся как FieldCode (с start-FieldChar и end-FieldChar). Гугл привел меня в этот блог . Как вы можете видеть, парень сталкивается с той же проблемой; но пока не нашел решения.

Я использую следующий пример кода в Codeplex [Fill Mergefields], чтобы заменить MergeFields фактическими значениями из разных источников данных.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 марта 2011

Если значением поля является простой текст с согласованным форматированием, оно может быть сохранено как узел fldSimple. Однако, если значение поля имеет различное форматирование, оно должно быть сохранено как сложное поле (fldChar Start, Optional Separate и End), чтобы у каждого прогона в пределах значения поля было различное форматирование, определенное в свойствах прогона <w:rPr> , Я думаю, что это также происходит, если Word использует атрибуты rsid для отслеживания изменений. FldChar Start / Separate / End также необходимы, если поля являются вложенными, например, несколько полей IF, чтобы в нем можно было хранить произвольное число <w:r>, <w:p>, <w:tbl> в качестве значения поля.

И иногда он хранит их таким образом, по-видимому, без веской причины. (Как отмечено в этом блоге).

...