Если вы проверите сгенерированный файл Word, вы увидите, что ваш код работал точно так, как вы заявили. Последний абзац - единственный, к которому вы применили форматирование к - имеет межстрочный интервал 3pt и 5 пунктов после; все остальные абзацы отображаются с форматированием по умолчанию.
Так что python-docx
работает правильно, и если ваш вывод неправильный, то это потому, что ваш код неправильный.
Во-первых, я настоятельно советую не устанавливать межстрочный интервал до 3 пунктов; Я предполагаю, что вы запутались, потому что это «не работает», и вы намеревались установить вместо него space_before
. Во-вторых, убедитесь, что ваше форматирование применено к всем абзацам, а не только к последнему:
from docx import Document
from docx.shared import Pt
document = Document()
document.add_heading('THIS IS MY HEADER WANT TO UNDERLINE IT')
paragraph = document.add_paragraph('THIS IS MY FIRST PARAGRAPH ')
paragraph.paragraph_format.space_before = Pt(3)
paragraph.paragraph_format.space_after = Pt(5)
paragraph = document.add_paragraph('THIS IS SECOND PARAGRAPH')
paragraph.paragraph_format.space_before = Pt(3)
paragraph.paragraph_format.space_after = Pt(5)
paragraph = document.add_paragraph('SPACING BETWEEN EACH SHOULD BE DECREASED')
paragraph.paragraph_format.space_before = Pt(3)
# no need to set space_after because there is no text after this
print("document created")
document.save('demo.docx')
В результате получается документ с 3-мя дополнительными пробелами до и 5-тью после ( и с обычным начальным) для всех трех текстовых абзацев.