如何用python-docx实现文本按宽度对齐?对齐常量选择疑问
Python-docx 实现文本按宽度对齐的解决方案
在python-docx>=1.1.0版本中,要实现文本按宽度对齐(即让段落内所有行都撑满指定宽度的对齐效果),你需要使用WD_PARAGRAPH_ALIGNMENT.JUSTIFY_HI这个常量。
为什么之前尝试的常量无效?
WD_PARAGRAPH_ALIGNMENT.DISTRIBUTE:主要针对东亚字符设计,对纯西文或混合文本的宽度对齐效果不符合常规需求- 以
JUSTIFY_为前缀的其他常量(如JUSTIFY_LOW):属于常规两端对齐,仅对段落中非最后一行的文本进行撑满处理,最后一行会保持左对齐,无法实现全段按宽度对齐的目标
代码示例
from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 创建文档对象 doc = Document() # 添加需要对齐的段落 paragraph = doc.add_paragraph("这是一段需要按宽度对齐的示例文本,无论内容长短,所有行都会被调整为撑满整个段落的宽度。") # 设置宽度对齐 paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY_HI # 保存文档 doc.save("width_aligned_doc.docx")
补充说明
如果你的文档包含中文等东亚字符,若对齐效果仍不理想,可以尝试调整段落的字符间距,但核心的对齐控制常量依然是JUSTIFY_HI。
内容的提问来源于stack exchange,提问作者Andrei Gurko
相关产品推荐
相关产品推荐

