python-docx_python-docx中设置中文字体

需要额外导入qn:

from docx.oxml.ns import qn

设置中文字体与西文字体不同,可能是word内部处理方式不同,主要是通过以下这句:

style.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体') # style中

r._element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋_GB2312') # run中

以下给出在style和run中设置的代码。

style中的设置

更改现有style

style = document.styles['Normal']

style.font.name = 'Times New Roman' # 必须先设置font.name

style.font.size = Pt(14)

style.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')

创建新style

mystyle = document.styles.add_style('titlepage_title', WD_STYLE_TYPE.PARAGRAPH)

mystyle.font.name = 'Times New Roman' # 必须先设置font.name

mystyle.font.size = Pt(16)

mystyle.font.bold = True

mystyle.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')

mystyle.paragraph_format.space_after = Pt(0)

# mystyle.paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE

mystyle.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

mystyle.paragraph_format.line_spacing = 1.8

对创建的段落应用设置好的style即可改变中文字体。

run(大概是指段落中的格式相同的一批字符)中的设置

p = document.add_paragraph()

r = p.add_run('文字')

r.font.name = '仿宋_GB2312' # 必须先设置font.name

r._element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋_GB2312')

r.font.size = Pt(14)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值