gpt4 book ai didi

c# - 替换 Word 2003 文档中的 MergeFields 并保持样式

转载 作者:太空狗 更新时间:2023-10-30 00:59:02 25 4
gpt4 key购买 nike

我一直在尝试创建一个库来替换 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 但没有用到任何程度。

最佳答案

不要在选择的顶部使用 TypeText,而是使用 Field 的 Result 属性:

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

这将确保保留字段中的所有格式。

关于c# - 替换 Word 2003 文档中的 MergeFields 并保持样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com