Python 2.7 Can';“不改变”;标题1“;使用docx的字体名称

Python 2.7 Can';“不改变”;标题1“;使用docx的字体名称,python-2.7,python-docx,Python 2.7,Python Docx,我正在使用以下脚本: header = self.document.add_paragraph(style='Heading 1') header.style.font.name = 'Arial' header.style.font.size = Pt(16) header.add_run('Header One') 结果是“标题1”得到“Calibri” 即使在python docx版本0.8.5中,这也是一个合法的bug。如果要更改样式“Normal”的字体名称,它可以工作(如pytho

我正在使用以下脚本:

header = self.document.add_paragraph(style='Heading 1')
header.style.font.name = 'Arial'
header.style.font.size = Pt(16)
header.add_run('Header One')

结果是“标题1”得到“Calibri”

即使在python docx版本0.8.5中,这也是一个合法的bug。如果要更改样式“Normal”的字体名称,它可以工作(如pythondocx手册中的示例所示),但这不适用于“heading1”样式

一种解决方法是创建以标题1为基础样式的新标题样式,然后修改新样式的字体名称和大小:

from docx.enum.style import WD_STYLE_TYPE

styles = self.document.styles
new_heading_style = styles.add_style('New Heading', WD_STYLE_TYPE.PARAGRAPH)
new_heading_style.base_style = styles['Heading 1']
font = new_heading_style.font
font.name = 'Arial'
font.size = Pt(16)
self.document.add_paragraph('Header One', style='New Heading')

顺便说一句,这改变大小不是字体名称虽然!