Python-docx 整体修改或者部分修改文字的大小和字体类型

Python中可以用docx来生成word文档,docx中可以自定义文字的大小和字体等。

 其中要整体修改文字的字体大小和字体,可以用以下方法:

newfile = docx.Document()
newfile.styles['Normal'].font.name = 'Times New Roman'
newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

设置字体的两句一定要一起用才能起作用,其中

newfile.styles['Normal'].font.name = 'Times New Roman'  是用来设置当文字是西文时的字体,

newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') 是用来设置当文字是中文时的字体。

有点类似Word中的

当只要设置一部分文字的字体,即不要整个文档的字体都一样时,可以用以下方法:

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


newfile = docx.Document()
p1 = newfile.add_paragraph()
text1 = p1.add_run("第一段文字是中文;The first paragraph is in English")
p2 = newfile.add_paragraph()
text2 = p2.add_run("第二段文字是中文;The second paragraph is in English")
# 分别控制每个段落的字体
text1.font.size = Pt(15)                                # 字体大小
text1.bold = True                                       # 字体是否加粗
text1.font.name = 'Times New Roman'                     # 控制是西文时的字体
text1.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')   # 控制是中文时的字体
text2.font.size = Pt(10)
text2.bold = False  # 字体是否加粗
text2.font.name = 'Times New Roman'
text2.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
newfile.save("newdocx.docx")

上面代码是向文档写入了两段文字,第一段中的中文是“宋体”的,而第二段中的中文是“黑体”的。

 

 

  • 22
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值