无法设置字体大小和rtl

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)

我尝试了不同的命令顺序,但没有任何作用.

Ori*_*itK 4

好的,找到了!事实证明,在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