Python-docx 实现整体修改或者部分修改文字的大小和字体类型
Python中可以用docx来生成word文档,docx中可以自定义文字的大小和字体等。
其中要整体修改文字的字体大小和字体,可以用以下方法:
newfile=docx.Document()
newfile.styles['Normal'].font.name='TimesNewRoman'
newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
设置字体的两句一定要一起用才能起作用,其中
newfile.styles['Normal'].font.name='TimesNewRoman'是用来设置当文字是西文时的字体,
newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')是用来设置当文字是中文时的字体。
有点类似Word中的
当只要设置一部分文字的字体,即不要整个文档的字体都一样时,可以用以下方法:
importdocx
fromdocx.oxml.nsimportqn
fromdocx.sharedimportPt
newfile=docx.Document()
p1=newfile.add_paragraph()
text1=p1.add_run("第一段文字是中文;ThefirstparagraphisinEnglish")
p2=newfile.add_paragraph()
text2=p2.add_run("第二段文字是中文;ThesecondparagraphisinEnglish")
#分别控制每个段落的字体
text1.font.size=Pt(15)#字体大小
text1.bold=True#字体是否加粗
text1.font.name='TimesNewRoman'#控制是西文时的字体
text1.element.rPr.rFonts.set(qn('w:eastAsia'),'宋体')#控制是中文时的字体
text2.font.size=Pt(10)
text2.bold=False#字体是否加粗
text2.font.name='TimesNewRoman'
text2.element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
newfile.save("newdocx.docx")
上面代码是向文档写入了两段文字,第一段中的中文是“宋体”的,而第二段中的中文是“黑体”的。
补充:python使用python-docx调整Word文档样式
修改文字字体样式
fromdocximportDocument
fromdocx.sharedimportPt#设置像素、缩进等
fromdocx.sharedimportRGBColor#设置字体颜色
fromdocx.oxml.nsimportqn
doc=Document(r"../wordDemo/表彰大会通知.docx")
forparagraphindoc.paragraphs:
forruninparagraph.runs:
run.font.bold=True
run.font.italic=True
run.font.underline=True
run.font.strike=True
run.font.shadow=True
run.font.size=Pt(18)
run.font.color.rgb=RGBColor(255,0,255)
run.font.name="黑体"
#设置像黑体这样的中文字体,必须添加下面2行代码
r=run._element.rPr.rFonts
r.set(qn("w:eastAsia"),"黑体")
doc.save(r"../wordDemo/表彰大会通知.docx")
效果展示
修改段落样式
对齐样式
fromdocximportDocument fromdocx.enum.textimportWD_ALIGN_PARAGRAPH#设置对象居中、对齐等。 doc=Document(r"../wordDemo/表彰大会通知.docx") print(doc.paragraphs[1].text) doc.paragraphs[1].alignment=WD_ALIGN_PARAGRAPH.CENTER #这里设置的是居中对齐 doc.save(r"../wordDemo/表彰大会通知.docx")
效果展示
行间距调整
fromdocximportDocument fromdocx.enum.textimportWD_ALIGN_PARAGRAPH doc=Document(r"../wordDemo/表彰大会通知.docx") forparagraphindoc.paragraphs: paragraph.paragraph_format.line_spacing=5.0 doc.save(r"../wordDemo/表彰大会通知.docx")
效果展示
段前与段后间距
fromdocximportDocument fromdocx.enum.textimportWD_ALIGN_PARAGRAPH fromdocx.sharedimportPt doc=Document(r"../wordDemo/test.docx") forparagraphindoc.paragraphs: paragraph.paragraph_format.space_before=Pt(12) #段前 paragraph.paragraph_format.space_after=Pt(10) #段后 #Pt(12)表示12磅 doc.save(r"../wordDemo/test.docx")
效果展示
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。