Python-docx中设置页面宽度与高度的正确方法

发布时间 - 2026-01-25 00:00:00    点击率:

在使用python-docx库修改word文档页面尺寸时,常见错误是将page_width和page_height误当作可调用方法使用,实际它们是可赋值的属性,应直接赋值inches()对象而非调用。

当你通过 doc.sections[0] 获取文档默认节对象后,section.page_width 和 section.page_height 是 Length 类型的属性(property),而非函数。因此以下写法是错误的:

section.page_width(Inches(5))  # ❌ 错误:'Twips' object is not callable
section.page_height(Inches(5)) # ❌ 同样触发 TypeError

这会导致 Python 尝试调用一个 Twips 实例(Inches(5) 内部转换为 Twips 单位),而 Twips 类未实现 __call__ 方法,从而抛出 'Twips' object is not callable 异常。

✅ 正确做法是直接赋值

from docx import Document
from docx.shared import Inches

doc = Document()
section = doc.sections[0]

# ✅ 正确:直接赋值 Length 对象
section.page_width = Inches(5)
section.page_height = Inches(5)

# 可选:同时设置页边距(单位同理)
section.left_margin = Inches(0.75)
section.right_margin = Inches(0.75)
section.top_margin = Inches(1.0)
section.bottom_margin = Inches(1.0)

doc.save("custom_size.docx")

⚠️ 注意事项:

  • Inches()、Cm()、Pt() 等单位构造器返回的是 Length 子类实例(如 Twips),专用于 docx 属性赋值,不可调用
  • 所有页面布局相关属性(如 pag

    e_width、page_height、left_margin 等)均为可读写属性,不带括号;
  • 若需添加新节(如分栏、不同页眉页脚),可用 doc.add_section(),但新节的尺寸仍需通过属性赋值方式设置;
  • 修改尺寸后务必调用 doc.save() 才能持久化到文件。

? 小技巧:可通过 print(section.page_width.inches) 验证设置是否生效,输出应为 5.0。

掌握这一基本规则,可避免绝大多数与 Twips、Emu、Pt 等单位对象相关的调用错误,让文档自动化更稳健可靠。


# word  # python  # word文档  # red 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何在七牛云存储上搭建网站并设置自定义域名?  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  高端建站如何打造兼具美学与转化的品牌官网?  Laravel如何实现多对多模型关联?(Eloquent教程)  如何为不同团队 ID 动态生成多个非值班状态按钮  QQ浏览器网页版登录入口 个人中心在线进入  成都网站制作公司哪家好,四川省职工服务网是做什么用?  iOS正则表达式验证手机号、邮箱、身份证号等  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  JavaScript中的标签模板是什么_它如何扩展字符串功能  千库网官网入口推荐 千库网设计创意平台入口  如何在阿里云服务器自主搭建网站?  如何用PHP快速搭建高效网站?分步指南  如何在腾讯云服务器上快速搭建个人网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何为不同团队 ID 动态生成多个独立按钮  如何快速搭建高效可靠的建站解决方案?  高端云建站费用究竟需要多少预算?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何升级到最新版本?(升级指南和步骤)  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  香港服务器部署网站为何提示未备案?  SQL查询语句优化的实用方法总结  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel中的Facade(门面)到底是什么原理  如何在阿里云通过域名搭建网站?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何在阿里云域名上完成建站全流程?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel如何生成URL和重定向?(路由助手函数)  韩国服务器如何优化跨境访问实现高效连接?  Laravel如何记录自定义日志?(Log频道配置)  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何实现建站之星域名转发设置?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  大连网站制作公司哪家好一点,大连买房网站哪个好?  香港服务器租用每月最低只需15元?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  专业商城网站制作公司有哪些,pi商城官网是哪个?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何挑选高效建站主机与优质域名?