python-docx styles(样式)的用法

doc=Document()#创建一个空白文档
p=doc.add_paragraph()#给文档增加一个段落
p.paragraph_format.space_before=Pt(0)#设置段落 段前 0 磅
p.paragraph_format.space_after=Pt(0) #设置段落   段后 0 磅
p.paragraph_format.line_spacing=1.5  #设置该段落 行间距为 1.5倍
#p.paragraph_format.first_line_indent=Inches(0.5) #段落首行缩进为 0.5英寸
p.paragraph_format.first_line_indent=Inches(0.3346457)#相当于小四两个字符的缩进
p.paragraph_format.left_indent=Inches(0)#设置左缩进 1英寸
p.paragraph_format.right_indent=Inches(0)#设置右缩进 0.5 英寸

#给段落增加一段文字
r=p.add_run("违反接收到了附近双龙夺凤塑料袋积分上岛咖啡山东矿机发双龙夺凤"\
            +"水电费水电费水电费电饭锅电饭锅让大哥大纲很多个人盯人电饭锅"\
            +"如果电饭锅电饭锅让大哥的防滑大纲而二哥电饭锅仍大纲二个电饭锅"\
            +"尔特人二柔荑花任天野儿童问题5人员柔荑花土样任天野儿童儿童而已")
r.font.name=u'宋体'    #设置为宋体
r._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')#设置为宋体,和上边的一起使用
r.font.size=Pt(12)  #设置字体大小为12磅 相当于 小四
r.font.color.rgb=RGBColor(0,0,0)#设置颜色为黑色

此种方法虽然可以完成对段落样式的设置,但是没增加一个段落都要重新设置样式,因此可以设置一个统一的样式,各个段落都可以采用,也可以设置统一的标题,各个标题都可以采用,具体代码如下所示:代码中 "Normal"表示正文的样式,[“Heading 2”]表示2级标题的样式,当然一级标题的样式关键字为[“Heading 1”]

import docx
from docx import Document   #用来建立一个word对象
from docx.shared import Pt  #用来设置字体的大小
from docx.shared import Inches
from docx.oxml.ns import qn  #设置字体
from docx.shared import RGBColor  #设置字体的颜色
from docx.enum.text import WD_ALIGN_PARAGRAPH  #设置对其方式

#创建一个空白的word文档
doc=Document()
doc.styles["Normal"].font.name=u"宋体"  #设置全局字体
doc.styles["Normal"]._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
doc.styles["Normal"].font.color.rgb=RGBColor(255,0,0)#设置正文全局颜色为红色
doc.styles["Normal"].font.size=Pt(29)#设置正文全局大小为29
doc.styles["Heading 2"].font.size=Pt(29)#设置全局2级标题的字体大小为29

p=doc.add_paragraph()
r=p.add_run("违反接收")#这个段落使用的是Normal的样式

para_heading=doc.add_heading('',level=2)#返回1级标题段落对象,标题也相当于一个段落
run=para_heading.add_run(u"前言")#这个使用的是"Heading 2" 的样式

doc.save("特殊字体.docx")
posted @   那酒不要留  阅读(787)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
/* 雪花特效 */
点击右上角即可分享
微信分享提示