我想在Word文档中找到并替换文本,只要它是使用C#
的Symbol字体到目前为止,这是我的代码:
static void find_replace_text(string find_s, string replace_s, Document document)
{
object missing = System.Reflection.Missing.Value;
Range rng = document.Range(0, document.Content.End);
Find findObject = rng.Find;
findObject.ClearFormatting();
findObject.Text = find_s;
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = replace_s;
findObject.Font.Name = "Symbol";
findObject.Format = true;
object replaceAll = WdReplace.wdReplaceAll;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, true,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
我的代码没有给我预期的结果。当我删除将字体名称和格式设置为true的行时,无论字体如何,我的代码都会替换所有出现的搜索字符串。例如,我正在尝试替换具有字符代码97的字母符号(来自符号字体)。如果没有在代码中设置字体名称,则所有出现的字母都是' a' (ascii 97)被替换。我需要代码才能识别字体。
更新
我现在可以确认代码仅适用于通过将字体更改为“符号”而将符号添加到WORD的情况,但不能通过将符号添加到文档中时将代码添加到WORD中符号UI(不幸的是,它是如何在我需要处理的文档中完成的。)