在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在所需的位置使用这些样式。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...