如何获取 Aspose.Words 中 运行 的 BackgroundColor 值?

How to get the BackgroundColor value for Run in Aspose.Words?

这里是:

• Aspose.Words

• System.Drawing

如果 .docx 文档的主要段落之一被修改(始终启用 TrackChange),您必须确定修改后的背景颜色(颜色代码)运行。

当一个运行修饰好,判断正确(例如,当写“client”而不是“contractor”时,显示为修饰运行)。如何获取背景颜色代码?

文档的格式为 table。我拿走了所有的细胞。在单元格中,我使用所有段落,在段落中,我使用所有 运行s:

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)
    }
}

请使用Run.Font.Shading.BackgroundPatternColor 属性获取运行节点的BackgroundColor。

Document doc = new Document(MyDir + "Sample.docx");
Table table = (Table)doc.GetChild(NodeType.Table, 0, true);
foreach (Paragraph par in table.LastRow.LastCell.Paragraphs)
{  
    foreach (Run run in par.Runs) //par - it's Paragraph in Cells
    {
        if (run.IsInsertRevision || run.IsDeleteRevision) //check revisions (in TrackChange)
        {
            Console.WriteLine(run.Font.Shading.BackgroundPatternColor);
        }
    }
}

我在 Aspose 工作,担任开发人员布道师。