我一直在试图建立一个图书馆,以取代Word 2003文档的MERGEFIELDS,一切工作正常,但我失去了适用于现场时,我代替它的风格,有没有一种方法来保持它?

这是我使用替换字段中的代码:

private void FillFields2003(string template, Dictionary<string, string> values)
{
    object missing = Missing.Value;
    var application = new ApplicationClass();
    var document = new Microsoft.Office.Interop.Word.Document();

    try
    {
        // Open the file

        foreach (Field mergeField in document.Fields)
        {
            if (mergeField.Type == WdFieldType.wdFieldMergeField)
            {
                string fieldText = mergeField.Code.Text;
                string fieldName = Extensions.GetFieldName(fieldText);

                if (values.ContainsKey(fieldName))
                {
                    mergeField.Select();
                    application.Selection.TypeText(values[fieldName]);
                }
            }
        }
        document.Save();
    }
    finally
    {
        // Release resources
    }
}

我试图使用在选择的CopyFormat和PasteFormat方法,也使用get_style和set_style但没有exent。

有帮助吗?

解决方案

代替使用过的TypeText选择的顶部的使用字段的Result属性:

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

这将确保在现场的任何格式被保留。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top