У меня есть документ Word, и текст в нем имеет много цветов. Я хочу найти цвета, которые используются в документе thid, чтобы я мог поместить строку до и после нее. Он загружает цвета в пользовательский интерфейс в Winforms.
Я попытался найти и заменить весь список wdColors следующим образом:
doc.Selection.Find.Font.Color = wdColor.Red
Однако, если цвет текста в этом wdColor, он работает нормально.
Но есть цвета, которые есть число, а не из перечисления.
Другая проблема заключается в том, что это может быть тот же цвет на документе, но иногда он имеет wdColor и somtims число. Например, красный цвет может быть 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);
}