相关文章推荐
喝醉的电脑桌  ·  sprintf unsigned int ...·  3 月前    · 
闷骚的山楂  ·  Python gdal warp函数 ...·  10 月前    · 
成熟的匕首  ·  Python ...·  1 年前    · 
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt,RGBColor

如果不进行字体手动设置的话,生成的文字字体格式就会千奇百怪,如下图

Doc = Document() 
Doc.add_heading("刚来csdn,这就是博客么,I了")
Doc.add_paragraph("Python ")
Doc.add_paragraph("Python 对word进行操作")
Doc.save("Python_word.docx")

在这里插入图片描述
可以看到自动配置的字体不是我们平常默认的宋体,而是一个歪果字体,无论是正文还是标题的字看着很乱。因此需要手动设置一下字体。

只需要在Doc = Document()下添加如下代码,就可以设置文本内容字体,颜色等等,方法是对font成员进行属性的修改。

Doc.styles['Normal'].font.name = u'宋体'
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
Doc.styles['Normal'].font.size = Pt(10.5)
Doc.styles['Normal'].font.color.rgb = RGBColor(0,0,0)

在这里插入图片描述可以看到正文内容的字体已经变成了我们想要的样子了,但蓝圈的标题依然还是有问题,可能因为标题不属于正文范围内吧,需要单独再设置一下。

对于标题来说,需要用这种方式设置字体

# 标题等级如1,2,3这些数字,一级标题二级标题这样
Head = Doc.add_heading("",level=标题等级)# 这里不填标题内容 
run  = Head.add_run("真正要填写的标题")
run.font.name=u'Cambria'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'Cambria')
run.font.color.rgb = RGBColor(0,0,0)

第一行的地方不填标题内容,因为我没有研究出来怎么修改他的大小和值,只能通过add_run的返回值来修改标题的内容。再运行的结果如下:
在这里插入图片描述注意到颜色也发生了变化,是因为我最后一行修改了字体的颜色。
完整代码

Doc = Document() 
Doc.styles['Normal'].font.name = u'宋体'
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
Doc.styles['Normal'].font.size = Pt(10.5)
Doc.styles['Normal'].font.color.rgb = RGBColor(0,0,0)
Head = Doc.add_heading("",level=1)# 这里不填标题内容
run  = Head.add_run("刚来csdn,这就是博客么,I了")
run.font.name=u'Cambria'
run.font.color.rgb = RGBColor(0,0,0)
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'Cambria')
Doc.add_paragraph("Python ")
Doc.add_paragraph("Python 对word进行操作")
Doc.save("Python_word.docx")

附:字体大小参照这篇博客的对照表:
字号‘八号’对应磅值5
字号‘七号’对应磅值5.5
字号‘小六’对应磅值6.5
字号‘六号’对应磅值7.5
字号‘小五’对应磅值9
字号‘五号’对应磅值10.5
字号‘小四’对应磅值12
字号‘四号’对应磅值14
字号‘小三’对应磅值15
字号‘三号’对应磅值16
字号‘小二’对应磅值18
字号‘二号’对应磅值22
字号‘小一’对应磅值24
字号‘一号’对应磅值26
字号‘小初’对应磅值36
字号‘初号’对应磅值42

总结一下,在本文中,我们介绍了如何使用Python Docx库来设置文档的字体。我们通过一个简单的示例演示了如何设置字体的名称和大小。在本文中,我们将介绍如何使用Python Docx库来设置文档的字体。除了设置段落的字体Python Docx还提供了其他功能,如设置文本的颜色、加粗、斜体等。通过运行上面的代码,你将得到一个包含设置了特定字体的段落的Word文档。然后,我们可以使用字体对象的属性来设置字体的名称和大小。在上面的示例中,我们将字体名称设置为"宋体",字体大小设置为12磅。 24届本科考研失败,三月份开始找工作,从一开始的热情到四月份开始自我怀疑,五月只剩下焦虑。offer 选择:offer1:比亚迪规划院,地点深圳(想在西安,可没有西安岗),C++软件开发,月。楼主是24届双非应届生,找的嵌入式软开方向的工作,经历过找暑期实习、秋招、春招、解约等时期。成飞132之前参加了4月19号的线上招聘会,填了资料什么的也都符合要求,但是后续没有回复了。写个面经积攒一下好运!具体时间不记得了,五一前面的一面,当时还是0offer准备的还挺认真,结果一面就面了十几分钟,就大概。 在使用Python处理docx文件时,我们经常需要对文档中的文字进行格式设置,其中包括字体设置。本文将介绍如何使用Pythondocx库来设置中文字体。首先,确保你已经安装了Pythondocx库。安装完成后,我们可以开始编写代码。 本来想根据已有的word做模板,添加些新生成的数据进去,没想明白是根据什么找想替换或者插入的地方的,二来要插入的图表文字也不少,所以干脆所有的都现生成吧,由于没怎么考虑效率,做下来这样也是可行的。 报告中会用到各种字号 WORD中字号、磅值,两者具体的对应关系大约如下吧: 字号‘八号’对应磅值5 字号‘七号’对应磅值5.5 字号‘小六’对应磅值6.5 字号‘六号’对应磅值7.5 字号‘小五’对应磅... from docx import Document from docx.shared import Inches, Cm, Pt from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_LINE_SPACING from docx.oxml.ns import qn cur_dir = '...' dirs = glob.glob(cur_dir+'\\*.jpg') doc = Document() for file in dirs: file=docx.Document()#创建内存中的word文档对象 file.add_paragraph("窗前明月光")#写入若干段落 file.add_paragraph("疑是地上霜") file.add_paragraph("举头望明月") file.add_paragraph("低头思故乡") file.save("E:\desktop\静夜思.docx"... from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Cm,Pt from docx.oxml.ns import qn document = Document('2.docx') #读取文档的第一个表格数据 tables = document.tables[0] #在第该表格3行1列的单元格内输入“能几日又中秋?as12A” run = tables.c.