Ori*_*itK 8 python docx right-to-left
使用docx,我试图为运行多个属性定义.当我设置颜色,rtl,它工作正常.但是当我添加字体大小时,它会被忽略.如果我只设置字体大小,它工作正常.
这很好用(字体颜色更改,运行从右到左):
run = p.add_run(line)
font = run.font
font.rtl = True
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
Run Code Online (Sandbox Code Playgroud)
这也很好(字体大小被修改):
run = p.add_run(line)
font = run.font
font.size = Pt(8)
#font.rtl = True # commented out
Run Code Online (Sandbox Code Playgroud)
但这不会改变字体的大小:
run = p.add_run(line)
font = run.font
font.size = Pt(8)
font.rtl = True
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的命令顺序,但没有任何作用.
好的,找到了!事实证明,在Word中,这种情况的字体大小必须包含复杂的脚本指令。这意味着你必须添加
<w:szCs w:val="???"/>
Run Code Online (Sandbox Code Playgroud)
代替(或除了)正常的
<w:sz w:val="??"/>
Run Code Online (Sandbox Code Playgroud)
我必须向 docx 库中的字体添加一个新属性,现在它工作正常。更改位于 3 个文档文件中:
text/font.py
oxml/__init.py__
oxml/text/font.py
Run Code Online (Sandbox Code Playgroud)
以及我认为的用法:
run = p.add_run(line)
font = run.font
#font.size = Pt(8) This line is redundant - but you can leave it
font.cs_size = Pt(8)
font.rtl = True
Run Code Online (Sandbox Code Playgroud)
向 docx 库添加了一个分支。在https://github.com/Oritk/python-docx