在Word 2003文档替换MERGEFIELDS,并保持风格
-
20-09-2019 - |
题
我一直在试图建立一个图书馆,以取代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]);
}
这将确保在现场的任何格式被保留。
不隶属于 StackOverflow