Вот:Как получить значение BackgroundColor для Run в Aspose.Words?
• Aspose.Words
• System.Drawing
Если один из основных .docx документа пункт изменен (с TrackChange всегда включен), вы должны определить цвет фона (цветовой код) модифицированного прогона.
Когда прогон хорошо модифицирован, он определяется правильно (например, когда вместо «подрядчика» был написан «клиент», он отображается как измененный прогон). Как получить код цвета фона?
Документ отформатирован как таблица. Я беру все ячейки. В клетках, я беру все пункты и в пунктах, я беру все прогоны:
foreach(Run run in par.Runs) //par - it's Paragraph in Cells
{
if(run.IsInsertRevision || run.IsDeleteRevision) //check revisions (in TrackChange)
{
Paragraph parpar = run.ParentParagraph; //taking parent paragraph
Shading shading = builder.ParagraphFormat.Shading; //create a new shading for current paragraph
System.Drawing.Color clr = shading.BackgroundPatternColor; //trying to get a backgroung color
string r = clr.R.ToString("X2");
string g = clr.G.ToString("X2");
string b = clr.B.ToString("X2");
r = r.Length == 1 ? "0" + r : r;
g = g.Length == 1 ? "0" + g : g;
b = b.Length == 1 ? "0" + b : b;
string code = "#" + r + g + b;
Console.WriteLine(code); //it's #000000 instead #fff001 (real backgroung color in the document)
}
}
'.ToString (" X2 ")' всегда возвращает начальный ноль, поэтому дополнительный код ниже избыточен. –
Вы проверили фактические значения clr.R, clr.G и clr.B? –
Нет, он возвращает HEX-код без начального нуля в моем случае. Я попробовал string.format раньше. –