Python Docx特定段落的行距

iFu*_*ion 2 python-3.x python-docx line-spacing

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

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
Run Code Online (Sandbox Code Playgroud)

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

sca*_*nny 5

行间距在此处的文档中进行了解释:
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
Run Code Online (Sandbox Code Playgroud)