首页 > 解决方案 > 特定段落的 Python Docx 行距

问题描述

浏览了文档后,我试图弄清楚如何将行距应用于单个段落,但似乎任何行距只能使用样式在全局范围内完成。有没有办法隔离特定段落,同时让文档的其余部分保持正常?像这样:

import docx
from docx.enum.text import WD_LINE_SPACING

text = 'Lorem ipsum...'
doc = Document()
para = doc.add_paragraph('text')
para.line_spacing = WD_LINE_SPACING.ONE_POINT_FIVE

上面的代码当然不起作用,我只能猜测这是因为 line_spacing 是一种样式级别的格式。关于尝试本地化而不做样式的另一点是文档一旦构建的可移植性,如果您将任何内容从一个文档剪切并粘贴到另一个可能已通过电子邮件发送到另一台计算机的内容,则存在恢复为“正常”样式的风险的另一台机器。这可以通过不使用文档级样式来防止(这是一个令人讨厌的解决方法,但这是一个单词问题而不是 docx 问题。)

标签: python-3.xpython-docxline-spacing

解决方案


行间距在此处的文档中进行了说明:
https ://python-docx.readthedocs.io/en/latest/user/text.html#line-spacing

简短的回答是您需要访问ParagraphFormat每个段落上的对象并使用.line_spacing_rule它:

paragraph_format = paragraph.paragraph_format
paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE

推荐阅读