ms-word C#查找活动文档中使用的所有颜色

时间:2018-11-04 08:19:45

标签: c# fonts colors ms-word range

我有一个word文档,其中的文本有很多颜色。我想找到该文档中使用的颜色,以便我可以在其前后放置一个字符串。它将颜色加载到Winforms的UI中。 我试图找到并替换所有wdColors列表,如下所示:

doc.Selection.Find.Font.Color = wdColor.Red

但是,如果文本的颜色在此wdColor中,则可以正常工作。 但是有些颜色是数字,而不是枚举。 另一个问题是,文档上的颜色可能是相同的,但是有时它具有wdColor并增加了一个数字。例如,红色可以是wdColorRed,数字225。如果存在一个范围,其FontColor = 225,并且我将尝试搜索wdColorRed,那谁找不到它。 如何在不循环的情况下找到文档中的颜色,将每个字符都扔出去并检查其颜色? 我有这个代码

   var name = Enum.GetValues(typeof(word.WdColor)).Cast<word.WdColor>().ToList();
        var app = (word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
        var doc = app.ActiveDocument;

        for (int i = 0; i < name.Count; i++)
        {
            var found = FindAndReplace(app, "", "", false, name[i]);
            if (found)
            {
          flowLayoutPanel1.Controls.Add(new HighLightControl(name[i].ToString(), name[i]));
            }
            app.Selection.HomeKey(word.WdUnits.wdStory);  
        }

0 个答案:

没有答案