Python-docx 设置页面尺寸的正确方式
作者:WarmHope
时间:2026-02-05
浏览:0
在python-docx中,section.page_width和section.page_height是可读写属性(而非方法),错误地将其当作函数调用(如section.page_width(Inches(5)))会导致'Twips'objectisnotcallable异常。
本文目录

在 python-docx 中,设置页面宽度和高度时,`section.page_width` 和 `section.page_height` 是可读写属性(而非方法),错误地将其当作函数调用(如 `section.page_width(Inches(5))`)会导致 `'Twips' object is not callable` 异常。
python-docx 的 Section 对象中,page_width、page_height、left_margin、right_margin 等页面布局相关字段均为属性(property),其底层类型为 Twips(以二十分之一磅为单位的整数),但对外暴露为支持 Inches、Cm、Pt 等 Length 类型的可赋值属性。
✅ 正确用法是直接赋值:
from docx import Document from docx.shared import Inches doc = Document() section = doc.sections[0] # ✅ 正确:直接赋值(属性设置) section.page_width = Inches(5) section.page_height = Inches(5) section.left_margin = Inches(0.75) section.right_margin = Inches(0.75)
❌ 错误用法(引发 'Twips' object is not callable):
section.page_width(Inches(5)) # TypeError: 'Twips' object is not callable section.page_height = Inches(5) # ✅ 这行对,但上一行已破坏对象状态,可能导致后续异常
⚠️ 注意事项:
- Twips 是 python-docx 内部使用的不可变长度单位类,不可被调用(即不支持 () 操作符);
- 所有 section.*_margin、section.header_distance、section.footer_distance 等同理,均需用 = 赋值,而非函数调用;
- 若需批量设置页面布局,建议在获取 section 后统一赋值,避免中间状态不一致;
- 修改页面尺寸后,若文档已含内容,Word 应用程序会自动重排,但部分复杂格式(如分栏、文本框)可能需手动校验显示效果。
? 小技巧:可通过 print(type(section.page_width)) 验证其类型(输出
总结:牢记——python-docx 的页面布局参数是属性,不是方法。赋值即生效,无需括号调用。这是初学者高频踩坑点,修正后即可稳定控制文档版式。
作者最新文章
sql条件判断字符串不包含某个字符串的方法详解
2026-10-13 17:39
漫蛙漫画官网
2026-10-13 13:19
漫蛙官网入口免费下载安装最新版
2026-10-13 13:18
漫蛙漫画登录页面在哪
2026-10-13 13:15
Photoshop自定义图层样式的保存、导入与管理技巧
2026-10-05 14:17
上一篇:
飞飞重逢首领打法及挑战技巧
下一篇:
3DS Max快速制作马桶教学
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































