【NLP】python进行word文档编辑——构建不同层级标题

        前一期介绍了【NLP】python-docx库简介-CSDN博客,感兴趣的朋友可以先去学习基本知识,再看看本篇基于python-docx库构建不同层级标题和正文字体、段落设置。

目录

🌷🌷正文字体格式设置

🍋🍋标题字体设置

🍀🍀字号和磅值对应表

🌾🌾段落对齐

🍂🍂添加段落属性

🍌🍌分页设置

💖💖样式的优先级问题

🍉🍉独立设置标题样式 

🐸🐸参数说明

👍👍独立设置正文样式 

🍎🍎python代码说明正文字体格式设置

🍎🍎python代码说明正文段落格式设置


🌷🌷正文字体格式设置

        这种正文字体设置可以对全文正文内容进行统一设置

d = Document()
# 设置西文字体
d.styles['Normal'].font.name = u'Times New Roman'
# 设置中文字体
d.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

🍋🍋标题字体设置

        上面这种方式无法对add_heading()起作用,需要对标题设置字体,需要使用下面这种方式

run = d.add_heading("", level=3).add_run("三级标题")
# 设置西文字体
run.font.name = u'Times New Roman'
# 设置中文字体
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

🍀🍀字号和磅值对应表

    Pt(30)设置字体大小,Pt表示磅,与字号对应关系如下

号数磅值 (Pt)
初号42
小初36
一号26
小一24
二号22
小二18
三号16
小三15
四号14
小四12
五号10.5
小五9
六号7.5
小六6.5
七号5.5
八号5

🌾🌾段落对齐

        段落对齐格式WD_PARAGRAPH_ALIGNMENT有多个可选项

  • LEFT 表示左对齐
  • CENTER 表示居中对齐
  • RIGHT 表示右对齐
  • JUSTIFY 表示两端对齐
  • DISTRIBUTE 表示散列对齐

🍂🍂添加段落属性

   add_paragraph()对象可以设置paragraph_format的多种属性,包括:

  • 对齐方式 alignment
  • 段落缩进 right_indent left_indent first_line_indent
  • 段落间距 space_before space_after
  • 行间距 line_spacing

🍌🍌分页设置

        分页设置 keep_together keep_with_next page_break_before widow_control

        分页设置的属性说明:

  • keep_together 段中不分页
  • keep_with_next 与下段同页
  • page_break_before 在段落前增加分页符
  • widow_control 孤行控制,控制页面的孤行和孤立行

💖💖样式的优先级问题

        run > heading >paragraph > document 

🍉🍉独立设置标题样式 

        举例说明一级标题设置字体段落等,其他等级类似

 
# 设置1级标题
def heading_1(docx,str_b1):
    heading_1 = docx.add_heading('',level=1)#返回1级标题段落对象,标题也相当于一个段落
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 
    heading_1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 中心对齐 
    heading_1.paragraph_format.space_before=Pt(0.5)#设置段前 0.5磅
    heading_1.paragraph_format.space_after=Pt(0.5) #设置段后 0.5 磅
    heading_1.paragraph_format.line_spacing=1.5 #设置行间距为 1.5
    heading_1.paragraph_format.left_indent=Inches(5)#设置左缩进 5英寸
    heading_1.paragraph_format.right_indent=Inches(5)#设置右缩进 5 英寸
    run=heading_1.add_run(str_b1)
    run.font.name=u'Times New Roman'    #设置为新罗马
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')#设置为宋体
    run.font.size=Pt(16)#设置1级标题文字的大小为“三号” 为16磅
    run.font.color.rgb=RGBColor(0,0,0)#设置颜色为黑色

🐸🐸参数说明

  • docx:需要写入的word文档,可以通过docx = Document()来定义得到
  • add_heading('',level=1):level=1表示添加一级标题
  • WD_PARAGRAPH_ALIGNMENT.CENTER:中心对齐,也是居中对齐
  • paragraph_format.space_before:设置段前间距,后面的数据表示磅数,0.5表示0.5磅
  • paragraph_format.space_after:设置段后间距,后面的数据表示磅数,0.5表示0.5磅
  • paragraph_format.line_spacing:设置行间距,后面的数据表示倍数,1.5表示行间距1.5倍
  • paragraph_format.left_indent:设置向左缩进,后面的数据表示英寸,5表示5英寸
  • paragraph_format.right_indent:设置向右缩进,后面的数据表示英寸,5表示5英寸
  • add_run:添加标题文字内容
  • run.font.name=u'Times New Roman'    设置英文字体为新罗马
  • run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体'):设置中文字体为宋体
  • run.font.size:设置1级标题文字的大小为“三号” 为16磅
  • run.font.color.rgb=RGBColor(0,0,0):设置颜色为黑色

👍👍独立设置正文样式 

        设置正文格式时需要用add_paragraph进行操作,而不是add_heading,

        python代码如下:

 
# 设置正文格式
def text(docx, str):
    paragrapha = docx.add_paragraph(str)
    # 将字体设置为12磅,即小四字体
    paragrapha.style.font.size = Pt(12)
    from docx.shared import Cm
    paragrapha.paragraph_format.first_line_indent = Cm(0.74)#左缩进0.74厘米即缩进2字符
    docx.styles['Normal'].font.name = 'Times New Roman'  
    docx.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') 
    paragrapha.paragraph_format.space_before=Pt(0.5)#设置段前 0.5 磅
    paragrapha.paragraph_format.space_after=Pt(0.5) #设置段后 0.5 磅
    paragrapha.paragraph_format.line_spacing=1.15 #设置行间距为 1.5
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 
    paragrapha.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT  # 两端左对齐

🍎🍎python代码说明正文字体格式设置

  • 字号12磅,即小四字体
  • 首行缩进0.74厘米,即缩进2字符
  • 英文字体为新罗马
  • 中文字体为宋体

🍎🍎python代码说明正文段落格式设置

  • 段前0.5磅
  • 段后0.5磅
  • 行间距1.15倍
  • 段落左对齐

整理不易,欢迎一键三连!!!


送你们一条美丽的--分割线--

🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zy_destiny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值