在python-docx中使用font.name或font.size时,无法使用RTL方向

问题描述

我正在使用python-docx编写新的ms单词。 Python 3.8-Win10 x32
代码

doc = docx.Document()
style = doc.styles['normal']
font = style.font
font.name = 'B Mitra'
font.size = docx.shared.Pt(13)
font.rtl = True
doc.add_paragraph("Hi in Persian= سلام")
doc.save("tst.docx")

在没有font.rtl=True的情况下,font.sizefont.name都将在段落上设置,但是当我使用font.rtl=True时,大小和字体将不会设置。会确定正确的方向。
有什么想法吗?
感谢您的帮助

解决方法

一种样式可以具有多种字体,例如一种用于拉丁字符,另一种用于草书(用于阿拉伯语和波斯语等语言)。 style.font仅是拉丁字体的设置,因为这是最常见的设置。虽然设置草书字体没有内置的python-pptx支持,但是如果您四处搜索,可能会找到成功完成草稿字体的人。

另一个问题包含一些信息: python-docx add_style with CTL (Complex text layout) language

我通过搜索python-docx arabic font找到了它。

此外,您还可以考虑创建一个使用其加载的“开始”或“模板” .docx文件

document = docx.Document("my-template-document.docx")

然后,您可以使用Word来设置所需的所有段落样式和其他文档设置,而只需python-docx在所需的位置使用这些样式。