千家信息网

如何进行python docx页面设置

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关如何进行python docx页面设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。word文档-节-的概念编辑一篇wor
千家信息网最后更新 2026年11月03日如何进行python docx页面设置

这篇文章将为大家详细讲解有关如何进行python docx页面设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

word文档-节-的概念

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

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

>>> import docx>>> doc = docx.Document()>>> len(doc.sections)1

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

>>> import docx>>> doc = docx.Document()>>> len(doc.sections)1>>> doc.add_section()>>> len(doc.sections)2  

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

设置页边距

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

section.top_margin:上页边距

section.bottom_margin:下页边距

section.left_margin:左页边距

section.right_margin:右页边距

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

>>> print('上',doc.sections[1].top_margin.cm,'下',doc.sections[1].bottom_margin.cm,'左',doc.sections[1].left_margin.cm,'右',doc.sections[1].right_margin.cm)上 2.54 下 2.54 左 3.175 右 3.175

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

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

>>> from docx.shared import Cm>>> doc.sections[1].top_margin = Cm(3.7)>>> doc.sections[1].bottom_margin = Cm(3.5)>>> doc.sections[1].left_margin = Cm(2.8)>>> doc.sections[1].right_margin = Cm(2.6)

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

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

设置纸张方向和大小

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

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

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

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

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

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

先查看下:

>>> doc.sections[0].page_height.cm27.94>>> doc.sections[0].page_width.cm21.59>>> doc.sections[0].orientation0

默认的是信纸大小,横向

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

from docx.shared import Cmfrom docx.enum.section import WD_ORIENTATIONdoc.sections[0].page_height = Cm(29.7)  # 设置A4纸的高度doc.sections[0].page_width = Cm(21)  # 设置A4纸的宽doc.sections[0].orientation = WD_ORIENTATION.PORTRAIT # 设置纸张方向为横向,可以不设置 默认为横向doc.sections[1].page_height = Cm(21)  # 设置A4纸的高度doc.sections[1].page_width = Cm(29.7)  # 设置A4纸的宽doc.sections[1].orientation = WD_ORIENTATION.LANDSCAPE # 设置纸张方向为纵向 

设置分栏

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

from docx.oxml.ns import qndoc.sections[1]._sectPr.xpath('./w:cols')[0].set(qn('w:num'), '2') #把第二节设置为2栏

想设置成几栏 把'2'就改成几。  

关于如何进行python docx页面设置就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

纸张 页面 方向 属性 大小 常用 横向 单位 文档 高度 别为 内容 就是 文章 更多 知识 篇文章 纵向 不同 不错 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州找大状互联网科技有限公司 金融科技还是互联网 互联网科技卖菜 互联网高科技股票 人人互联网科技是培训 多迪互联网科技有限公司 镁科技互联网资讯平台 互联网科技素材视频竖屏 互联网公司会议桌创意科技软装饰 济南华为互联网科技产业总部基地 常德市电业局互联网科技部 中国航天科技大学国际工业互联网 本届互联网博览会上的黑科技 工业互联网山东科技大学 互联网科技股为什么大涨 有人说阿里系是互联网科技企业 卡尔迅互联网科技有限公司 科技互联网行业投资研究 万物互联网智能科技 盐城市攀科互联网科技有限公司 科技互联网 为想互联网科技怎么样 融势互联网科技 中正互联网科技招聘 广西拼得多互联网科技有限公司 彤创互联网科技有限公司 杭州披云加互联网科技有限公司 富国互联网科技002692 北京天晋互联网科技有限公司 数字科技和互联网金融哪个好
0