2009-10-06 12 views
3

J'ai essayé de créer une bibliothèque pour remplacer les champs MergeFields sur un document Word 2003, tout fonctionne bien, sauf que je perds le style appliqué au champ lorsque je le remplace , y a-t-il un moyen de le garder?Remplacer MergeFields dans un document Word 2003 et conserver le style

C'est le code que je utilise pour remplacer les champs:

J'ai essayé d'utiliser les méthodes de CopyFormat et PasteFormat dans la sélection, en utilisant aussi le get_style et set_style mais sans exent.

Répondre

6

Au lieu d'utiliser TypeText sur le dessus de votre sélection utiliser la propriété Résultat du terrain:

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

Cela permettra d'assurer la mise en forme dans le domaine est retenu.

+3

Bonjour Cela a beaucoup aidé! Merci. Bien que le format correct est: mergeField.Result.Text = (valeurs [fieldName]). Parce que le type de résultat est "Plage". Merci beaucoup – willvv

+0

Oui, f.Result.Text, comme vous le dites, absolument. – hawbsl

+0

Bien que cela fonctionne, le résultat n'est pas comme prévu. Mon code est '{MERGEFIELD ClientName * Upper}'. Toutefois, après l'exécution de la fusion, il n'affiche pas les majuscules du nom du client. Pouvez-vous m'aider? Je vous remercie. –

Questions connexes