python docx如何设置中文字体和颜色

时间:2024-02-24 17:16:56

网上很多关于修改中文字体和颜色的文章,很多大佬写的非常精彩,我这里综合了一下,搞个简单粗暴的,但这个字体也只是修改了这一段的字体,如果还要控制到每个字的字体不一样,也是不行的,还需要改进。

from docx import Document
from docx.oxml.ns import qn
from docx.enum.style import WD_STYLE_TYPE

def font_setting(doc,text,font_cn,font_color):#font_color输入格式:\'250,0,0\' 三个0-255之间的数字

  style_add = doc.styles.add_style(font_cn, WD_STYLE_TYPE.CHARACTER)
  style_add.font.name = font_cn
  doc.styles[font_cn]._element.rPr.rFonts.set(qn(\'w:eastAsia\'), font_cn)
  par = doc.add_paragraph() 
  text = par.add_run(text, style=font_cn)
  text = font.color.rgb = RGBColor(int(font_color.split(\',\')[0]),int(font_color.split(\',\')[1]),int(font_color.split(\',\')[2]))

doc = Document()
a = \'枯藤老树昏鸦,小乔在下水里洗澡\'
b = \'古道西风瘦马\'
c = \'夕阳西下,孔明在偷窥\'

font_setting(doc,a,\'宋体\',\'250,0,0\')
font_setting(doc,b,\'华文中宋\',\'250,250,0\')
font_setting(doc,c,\'黑体\',\'0,250,250\')

doc.save(\'测试文档.docx\')