ParagraphFormat
:Пример использования объекта форматирования абзаца ParagraphFormat
документа MS Word.
import docx from docx.shared import Mm from docx.enum.text import WD_ALIGN_PARAGRAPH # создание документа doc = docx.Document() # Добавляем абзац p = doc.add_paragraph('Новый абзац.') # выравниваем абзац по центру p.alignment = WD_ALIGN_PARAGRAPH.CENTER # получаем объект форматирования fmt = p.paragraph_format # Форматируем: # отступ слева в мм fmt.first_line_indent = Mm(15) # отступ сверху в мм fmt.space_before = Mm(20) # отступ снизу в мм fmt.space_after = Mm(10) doc.add_paragraph('Еще новый абзац.') # а вот так можно получить значения # в нужных единицах измерения print('Интервал перед абзацем в сантиметрах:') print(' - в сантиметрах:', fmt.space_before.cm) space_before_mm = fmt.space_before.mm print(' - в миллиметрах:', fmt.space_before.mm) doc.save('test.docx')
ParagraphFormat
.Объект ParagraphFormat
модуля python-docx предоставляет доступ к форматированию абзацев документа MS Word, например выравниванию, отступу, межстрочному интервалу, пробелам до и после, отступу первого предложения абзаца ("Красная строка") и т.д.
Объект ParagraphFormat
НЕ создается вручную, а возвращается свойством абзаца/параграфа Paragraph.paragraph_format
.
ParagraphFormat
.Эти свойства доступны как для чтения, так и для установки/присваивания им значений, если не указано иное.
ParagraphFormat.alignment
выравнивания абзаца,ParagraphFormat.first_line_indent
отступ первой строки абзаца,ParagraphFormat.keep_together
не разрывать абзац,ParagraphFormat.keep_with_next
сохранить следующий абзац на этой странице,ParagraphFormat.left_indent
расстояние между левым полем и левой стороной абзаца,ParagraphFormat.line_spacing
межстрочный интервал,ParagraphFormat.line_spacing_rule
правила расчета межстрочного интервала,ParagraphFormat.page_break_before
абзац вверху страницы после предыдущего абзаца,ParagraphFormat.right_indent
расстояние между правым полем и правой стороной абзаца,ParagraphFormat.space_after
интервал между этим и следующим абзацем,ParagraphFormat.space_before
интервал между этим и предыдущим абзацем,ParagraphFormat.tab_stops
доступ к позициям табуляции,ParagraphFormat.widow_control
первая и последняя строки в абзаце на той же странице.ParagraphFormat.alignment
:Свойство ParagraphFormat.alignment
представляет собой член перечисления WD_PARAGRAPH_ALIGNMENT
, определяющий настройку выравнивания для этого абзаца. Значение None
указывает, что выравнивание абзаца унаследовано от иерархии стилей.
ParagraphFormat.first_line_indent
:Свойство ParagraphFormat.first_line_indent
возвращает/принимает значение Length
, которое определяет относительную разницу в отступах для первой строки абзаца.
None
означает, что отступ первой строки унаследован от иерархии стилей.ParagraphFormat.keep_together
:Свойство ParagraphFormat.keep_together
возвращает (или присвоить) True
, если абзац необходимо сохранить "цельным", а не разрывать его на границе страницы при визуализации документа. Значение None
означает, что его действующее значение унаследовано от иерархии стилей.
ParagraphFormat.keep_with_next
:Свойство ParagraphFormat.keep_with_next
возвращает (или присвоить) True
, если абзац должен быть сохранен на той же странице, что и следующий абзац при отображении документа.
Например, это свойство можно использовать для сохранения заголовка раздела на той же странице, что и его первый абзац. Ни один из них не указывает на то, что его эффективное значение унаследовано от иерархии стилей.
ParagraphFormat.left_indent
:Свойство ParagraphFormat.left_indent
возвращает/принимает значение Length
, которое определяет расстояние между левым полем и левой стороной абзаца. Значение None
означает, что отступа слева унаследован от иерархии стилей.
Используйте объект значения Mm()
как удобный способ установить отступ в миллиметрах.
ParagraphFormat.line_spacing
:Свойство ParagraphFormat.line_spacing
значение float
или Length
, определяющее расстояние между базовыми линиями в последовательных строках абзаца. Другими словами, межстрочный интервал.
Значение None
указывает, что межстрочный интервал унаследован от иерархии стилей.Значение с плавающей запятой, например 2.0 или 1.75, указывает, что интервал применяется кратно высоте строки.Значение длины Length
, такое как Pt(12)
, указывает, что интервал является фиксированной высотой в пунктах.
Класс значений Pt()
- это удобный способ применения межстрочного интервала в пунктах.
ParagraphFormat.line_spacing_rule
:Свойство ParagraphFormat.line_spacing_rule
представляет собой член перечисления WD_LINE_SPACING
, указывающий, как следует интерпретировать значение межстрочного интервала. Назначение любого из членов SINGLE
, DOUBLE
или ONE_POINT_FIVE
приведет к обновлению наследуемого значения межстрочного интервала.
ParagraphFormat.page_break_before
:Свойство ParagraphFormat.page_break_before
возвращает (или присвоить) True
, если абзац должен появиться вверху страницы после предыдущего абзаца. Значение None
означает, что его действующее значение унаследовано от иерархии стилей.
ParagraphFormat.right_indent
:Свойство ParagraphFormat.right_indent
возвращает/принимает значение Length
, которое определяет расстояние между правым полем и правой стороной абзаца. Значение None
означает, что значение отступа справа унаследовано от иерархии стилей.
Используйте объект значения Cm
, как удобный способ установить отступ в сантиметрах.
ParagraphFormat.space_after
:Свойство ParagraphFormat.space_after
возвращает/принимает значение Length
, которое определяет интервал между этим и последующим абзацами. Значение None
означает, что это значение унаследовано от иерархии стилей.
Объект Length
предоставляет удобные свойства, такие как .mm
и .cm
, которые позволяют легко читать значения в различных единицах длины.
ParagraphFormat.space_before
:Свойство ParagraphFormat.space_before
возвращает/принимает значение Length
, которое определяет интервал между этим и предыдущим абзацами.
Значение None
означает, что это значение унаследовано от иерархии стилей.
ParagraphFormat.tab_stops
:Свойство ParagraphFormat.tab_stops
представляет собой объект TabStops
, обеспечивающий доступ к позициям табуляции, определенным для этого формата абзаца.
ParagraphFormat.widow_control
:Свойство ParagraphFormat.widow_control
возвращает (или присвоить) True
, если первая и последняя строки в абзаце остаются на той же странице, что и остальная часть абзаца, когда Word повторно создает документ.
Значение None
означает, что его действующее значение унаследовано от иерархии стилей.