天天看点

python-docx 页面设置

编辑一篇word文档,往往首先从页面设置开始,从下图可以看出,页面设置常操作的有页边距、纸张方向、纸张大小4个,而在word中是以节(section)来分大的块,每一节的页面设置可以不同。所以在python-docx中也是一样,当前节的各项属性全部保存在当前的section中,要想设置当前节的页面就从了解section的各个属性应用开始吧。

python-docx 页面设置

如果用python-docx新建一个空白文档,那么默认是只有一个节

,如果要增加节可以用doc.add_section()来完成。

了解了节之后我们开始来对节的页面进行设置。

在python-docx包中常用页边距属性存在section的以下4个属性中:

section.top_margin:上页边距

section.bottom_margin:下页边距

section.left_margin:左页边距

section.right_margin:右页边距

页边距的值以厘米(cm)为单位,让我们来看看刚才第二节的默认的页边距是多少

  注,这里的sections[1]是第二节。

下面把页边距设置成我们公文常用的5678页面距

  这里要先导入docx中定义单位的Cm,后面常用的单位还有Pt 也是这个块导入。

另外 页边距属性还有3个不常用的就是装订线,页眉、页脚边距分别为:<code>section.gutter,</code><code>section.header_distance, section.footer_distance ,设置方法同上,不再赘述。需要说明的是装订线还有一个位置属性,暂时未发现如何设置,默认为左,如果需求设置成右,可以建个模板docx文档导入。</code>

Section 中的三个属性描述了页面方向和尺寸。分别为:<code>section.orientation, section.page_width, section.page_height</code>

纸张大小设置单位我习惯用cm,设置同页边距。

这里要特别说下orientation,即纸张方向,也是要设置的,不能说你把纸张宽度设置宽了,高度设置低了纸张就变成横向了,会影响打印等。

纸张方向的值是docx.enum.section.WD_ORIENTATION中枚举类型的2常量来设置的。分别为:

WD_ORIENTATION.LANDSCAPE:纸张方向为横向。

WD_ORIENTATION.PORTRAIT:纸张方向为纵向。

先查看下:

  默认的是信纸大小,横向

设置成我们常用的A4纸大小下:

有些时候我们还要在某些节中分栏,给节设置分栏的语句比较固定,就是更改section的一个私有属性。先导入docx.oxml.ns.qn,然后一句话搞定

想设置成几栏 把‘2’就改成几。