Межстрочный интервал Python Docx для конкретного абзаца - PullRequest
0 голосов
/ 15 ноября 2018

Просматривая документы, я пытаюсь понять, как применить межстрочный интервал к одному абзацу, но кажется, что любой межстрочный интервал может быть выполнен только в глобальном масштабе с использованием стилей. Есть ли способ изолировать отдельные абзацы, оставляя остальную часть документа нормальной? как это:

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).

1 Ответ

0 голосов
/ 11 января 2019

Межстрочный интервал объясняется в документации здесь:
https://python -docx.readthedocs.io / о / последний / пользователя / text.html # линейного интервал

Краткий ответ: вам нужно получить доступ к объекту ParagraphFormat в каждом абзаце и использовать для этого .line_spacing_rule:

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