DOCX REPLACE CARATTERI E CAMBIO COLORE
« il: Gennaio 21, 2020, 17:42 »
Ciao a tutti,
Da poco ho cominciato con Python e facendo un esercizio mi sono bloccato ad un certo punto.
Vorrei che lo script, partendo da un file word, sostituisca tutti gli spazi con un carattere Y e che questo carattere sia di un certo colore. Sono arrivato la punto che lo script sostitusice gli spazi con le Y ma purtroppo non capisco come andare avanti e modificare il colore delle Y.
Per caso qualcuno di voi mi potrebbe aiutare per favore?

import re
from docx import Document
from docx.shared import RGBColor
from docx.enum.style import WD_STYLE_TYPE
from docx.text.run import Font, Run

def docx_replace_regex(doc_obj, regex , replace):

    for p in doc_obj.paragraphs:
        if regex.search(p.text):
            inline = p.runs
            for i in range(len(inline)):
                if regex.search(inline[i].text):
                    text = regex.sub(replace, inline[i].text)
                    inline[i].text = text
                    document = doc
                                                           
    for table in doc_obj.tables:
        for row in table.rows:
            for cell in row.cells:
                docx_replace_regex(cell, regex , replace)
           
regex1 = re.compile(r" ")
replace1 = r"Y"
filename = "C:\\Users\\utente\\Desktop\\utente\\demo11.docx"
doc = Document(filename)
for p in doc.paragraphs:
    if ' ' in p.text:
        text = docx_replace_regex(doc, regex1 , replace1)
       # style = p.style
       # p.text = text
       # p.style =  style
        run = p.add_run()
        run.text = replace1
        font = run.font
        font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
       
doc.save('C:\\Users\\utente\\Desktop\\utente\\demo2.docx')


Grazie!  8) :py:
« Ultima modifica: Gennaio 21, 2020, 17:44 da pythones »