繁体   English   中英

如何在 Aspose.Words 中获取 Run 的 BackgroundColor 值?

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

这是:

• Aspose.Words

• 系统绘图

如果主 .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)
    }
}

请使用 Run.Font.Shading.BackgroundPatternColor 属性获取 Run 节点的 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 合作,担任开发人员布道者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM