Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Setting background color of wordx

im trying to set a report default background color but it appears black instead of blue, can anyone help?

Why is that? do i need to use another format that is not hex? iv tryied with other format and still nothing.

        docpath="/Users/ricardosimoes/Desktop/DESKTOP/Jira/my_word_file.docx"
        mydoc = docx.Document()
        section_h = mydoc.sections[0]
        header = section_h.header


        styles = mydoc.styles
        style = styles.add_style('Tahoma',WD_STYLE_TYPE.PARAGRAPH)
        style.font.name = 'Tahoma'
        style.font.size = Pt(11)

        shd = OxmlElement('w:background')
        # Add attributes to the xml element
        shd.set(qn('w:color'), '#0000FF')
        shd.set(qn('w:themeColor'), 'text1')
        shd.set(qn('w:themeTint'), 'F2')
        # Add background element at the start of Document.xml using below
        mydoc.element.insert(0, shd)
        # Add displayBackgroundShape element to setting.xml
        shd1 = OxmlElement('w:displayBackgroundShape')
        mydoc.settings.element.insert(0, shd1)

        paragraph_h = header.paragraphs[0]
        runheader = paragraph_h.add_run()
        runheader.add_picture("client_report/report_img/titulo.png", width=docx.shared.Inches(5), height=docx.shared.Inches(1))


        mydoc.add_picture("client_report/report_img/bottom.png", width=docx.shared.Inches(5),
                          height=docx.shared.Inches(1))
        mydoc.save(docpath)

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

The snippet seems to supply all three of the w:color, w:themeColor and w:themeTint attributes, and the latter two override the first one. The ECMA-376 standard says about the w:color attribute:

If the background specifies the use of a theme color via the themeColor attribute, this value is ignored. [Note: Applications are discouraged from specifying both the color and themeColor attributes on the same parent element. end note]

I haven’t tested this, but removing themeColor and themeTint (and dropping the # from 0000FF) should cause the blue color to show up.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading