在python-docx中设置段落字体

Mav*_*ine 7 python python-docx

我使用的是python-docx 0.7.6.

我似乎无法弄清楚如何为某个段落设置字体系列和大小.

有.style属性,但style="Times New Roman"不起作用.

有人可以指点我一个例子吗?

谢谢.

Zen*_*dix 19

这是如何将Normal样式设置为字体Arial和大小10pt.

from docx.shared import Pt

style = document.styles['Normal']
font = style.font
font.name = 'Arial'
font.size = Pt(10)
Run Code Online (Sandbox Code Playgroud)

这是如何将它应用于paragraph.

paragraph.style = document.styles['Normal']
Run Code Online (Sandbox Code Playgroud)

使用当前版本的python-docx(0.8.5).


Ale*_*ies 7

阅读完API文档后,我能够弄清楚如何创建自己的样式并应用它.您可以通过更改此代码以使用WD_STYLE_TYPE.PARAGRAPH以相同的方式创建段落样式对象.花了我一分钟才弄明白的东西是对象以及它们应用的级别,所以只要确保你清楚地理解它.我发现反直觉的东西是你在创建后定义样式属性.

这就是我创建角色级样式对象的方法.

document = Document(path to word document)
Run Code Online (Sandbox Code Playgroud)

#创建一个字符级样式Object("CommentsStyle")然后定义它的参数

obj_styles = document.styles
obj_charstyle = obj_styles.add_style('CommentsStyle', WD_STYLE_TYPE.CHARACTER)
obj_font = obj_charstyle.font
obj_font.size = Pt(10)
obj_font.name = 'Times New Roman'
Run Code Online (Sandbox Code Playgroud)

这就是我将样式应用于运行的方式.

paragraph.add_run(any string variable, style = 'CommentsStyle').bold = True
Run Code Online (Sandbox Code Playgroud)

  • @abu `从 docx.enum.style 导入 WD_STYLE_TYPE` (4认同)
  • @alex-nies我尝试了同样的方法,但是在你的`.add_style()`行中我收到一个错误:`NameError:名称'WD_STYLE_TYPE'未定义`...知道为什么吗? (2认同)

Mav*_*ine 3

最新版本的 python-docx 添加了对运行样式的支持