是否可以在groovy中为pptx4j设置强调色?

时间:2014-11-20 15:25:47

标签: groovy docx4j

我想在Groovy中设置属于ST_SchemeColorVal的强调色。
类似的东西:

 STSchemeColorVal.ACCENT_1 = new Color(0,0,0)

这可能吗?如果有,怎么样?

1 个答案:

答案 0 :(得分:0)

我认为你想要改变主题部分(或你的一个主题部分)中的a:accent1元素,例如:

    <a:theme name="Office Theme">
        <a:themeElements>
            <a:clrScheme name="Custom 1">
                <a:dk1>
                    <a:srgbClr val="2F2B20"/>
                </a:dk1>
                <a:lt1>
                    <a:srgbClr val="FFFFFF"/>
                </a:lt1>
                <a:dk2>
                    <a:srgbClr val="675E47"/>
                </a:dk2>
                <a:lt2>
                    <a:srgbClr val="DFDCB7"/>
                </a:lt2>
                <a:accent1>
                    <a:srgbClr val="D6F23C"/>
                </a:accent1>
                <a:accent2>
                    <a:srgbClr val="9CBEBD"/>
                </a:accent2>
                :
                <a:accent6>
                    <a:srgbClr val="B1A089"/>
                </a:accent6>
                <a:hlink>
                    <a:srgbClr val="D25814"/>
                </a:hlink>
                <a:folHlink>
                    <a:srgbClr val="849A0A"/>
                </a:folHlink>
            </a:clrScheme>

您需要获取主题部分,然后更改相关元素的值。

从头开始创建内容是一个不同的问题,但在Java中会是这样的:

    org.docx4j.dml.ObjectFactory dmlObjectFactory = new org.docx4j.dml.ObjectFactory();

    CTColorScheme colorscheme = dmlObjectFactory.createCTColorScheme(); 
    this.getContents().getThemeElements().setClrScheme(colorscheme);
        // Create object for accent1
        CTColor color = dmlObjectFactory.createCTColor(); 
        colorscheme.setAccent1(color); 
            // Create object for srgbClr
            CTSRgbColor srgbcolor = dmlObjectFactory.createCTSRgbColor(); 
            color.setSrgbClr(srgbcolor);

            srgbcolor.setVal(your byte[])