python word排版_Python控制Word文件中段落格式与文本格式

本文主要介绍扩展库python-docx中关于Word文件中文本格式控制的接口和用法,可以使用命令pip install python-docx安装,然后通过名字docx来使用其中提供的功能。

1、设置段落格式

段落是Word中的一个块级对象,在其所在容器的左右边界内显示文本,当文本超过右边界时自动换行。段落的边界通常是页边界,也可以是分栏排版时的栏边界,或者表格单元格中的边界。

段落格式用于控制段落在其容器(例如页、栏、单元格)中的布局,例如对齐方式、左缩进、右缩进、首行缩进、行距、段前距离、段后距离、换页方式、Tab键字符格式等。

1.1 水平对齐方式

可以通过段落的paragraph_format属性来访问和设置段落格式,paragraph_format属性的aligenment用来访问和设置对齐方式,可用的对齐方式由WD_ALIGN_PARAGRAPH类提供,常用的主要'CENTER'(居中)、'JUSTIFY'(两端对齐)、'LEFT'(左对齐)、'RIGHT'(右对齐)。可以通过下面的方式导入WD_ALIGN_PARAGRAPH:

from docx.enum.text import WD_ALIGN_PARAGRAPH

1.2 缩进

缩进是指段落与其所在容器的左边界的水平距离,段落与左、右边界的距离可以分别进行设置而互不影响,每个段落的首行可以具有与本段其他行不同的缩进。如果首行比其他行缩进的多,称作首行缩进。如果首行比其他行缩进的少,称作悬挂缩进。

缩进量通过段落的属性paragraph_format的left_indent、right_indent、first_line_indent来指定,可以指定为Inches、Pt或Cm这样的长度值,可以指定为负值,也可以指定为None,此时表示与前面的段落相同。

from docx.shared import Inches, Pt, Cm

1.3 Tab stops

用来设置段落文本中Tab键字符的渲染方式,可以指定Tab键字符后面的文本从哪里开始(设置为长度值)、如何对齐到那个位置以及使用什么字符填充Tab键字符跨越的水平空间。

1.4 段落间距

段落的paragraph_format属性的space_before和space_after属性分别用来控制一个段落的段前和段后距离,可设置为Inches、Pt或Cm值,两段之间的实际距离由前一个段的space_after和后一个段的space_before中的最大值决定。

1.5 行距

行距指一个段落中相邻行基线的距离,可以指定为绝对值或行高的相对值,默认为单倍行高。行距可以通过段落paragraph_format属性的line_spacing或line_spacing_rule属性来指定,当line_spacing设置为长度值时表示绝对距离,设置为浮点数时表示行高的倍数,设置为None表示根据继承层次决定。

1.6 换页方式

换页方式决定一个段落在一个页面结束附近如何表现,常用属性有如下,每个属性的取值可以为True、False、None:keep_together设置为True时使得整个段落出现在同一页中,如果一个段落在换页时可能会被打断就在段前换页;

keep_with_next设置为True时使得本段与下一段出现在同一页中;

page_break_before设置为True时使得本段出现在新的一页的顶端,例如新的一章标题必须从新的一页开始;

window_control设置为True时表示可以在必要的时候进行分页,避免本段的第一行或最后一行单独出现在一页中。

2、设置字符格式

Run属于行内元素的一种,是一个块级元素的组成部分,可以看做是一段连续的具有相同格式(字体、字号、颜色、加粗、斜体、下画线、阴影等)的文本。一般来说,一个段落会包含一个或多个Run,使得同一个段落中可以包含不同格式的文本。

可以通过一个Run对象的font属性来获取和设置该Run的字符格式,例如字体名称font.name、字体大小font.size、是否加粗font.bold、是否斜体font.italic、下画线格式font.underline(True表示单下画线,False表示没有下画线,或者使用WD_UNDERLINE中的成员设置更多下画线格式)、字体颜色font.color.rgb(设置为docx.shared.RGBColor对象)。

3、综合演示

4、运行效果

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值