python-docx字体无法修改,请问如何解决?

from docx import Document
from docx.shared import Pt

document = Document()
first_paragraph = document.add_paragraph()
first_style = first_paragraph.add_run('我是中国人') #新增首行样式并添加文字
first_style.font.size = Pt(20) # 设置字号样式
first_style.font.name = '黑体'  # 设置字体样式
document.save('我是中国人.docx')

结果'黑体'样式没能显示出来,只有默认的什么'MS Mincho',请问这是什么原因呢?

阅读 4.6k
2 个回答

测试了一下,你的代码仅能对英文字符生效

first_style.font.size = Pt(20) # 设置字号样式
first_style.font.name = '黑体'  # 设置字体样式

可行的方式是修改样式,通过不同的样式控制中文字体

document = Document()
document.styles['Normal'].font.name = u'黑体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')

参考网站
https://cloud.tencent.com/dev...

from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn

first_style = first_paragraph.add_run('我是中国人')  # 新增首行样式并添加文字
first_style.font.size = Pt(20)  # 设置字号样式
first_style.font.name = '黑体'  # 设置字体样式
first_style.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体') 
document.save('我是中国人.docx')

除了楼上提供的方法外,这个方法也可以。而且貌似不用在其具体设置值之前添加'u'也行?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题