Сообщить об ошибке.

Встроенные константы модуля python-docx

В материале дается описание и примеры работы со встроенными константами модуля python-docx, которые определяют поведение различных элементов документа DOCX.

Приведенные ниже константы имеют аналогичное значение в редакторе MS Word, что обеспечивает полную поддержку форматирования модулем python-docx.

Содержание:


WD_SECTION_START:

Короткая ссылка для импорта WD_SECTION - это перечисление, которое задает тип начала разрыва секции.

  • WD_SECTION.CONTINUOUS: непрерывный разрыв секции.
  • WD_SECTION.NEW_COLUMN: секция начинается с нового столбца.
  • WD_SECTION.NEW_PAGE: секция начинается с новой страницы.
  • WD_SECTION.EVEN_PAGE: секция начинается на следующей четной страницы.
  • WD_SECTION.ODD_PAGE: секция начинается на следующей нечетной странице.

Пример:

from docx.enum.section import WD_SECTION

section = document.sections[0]
section.start_type = WD_SECTION.NEW_PAGE

WD_ORIENTATION:

Короткая ссылка для импорта WD_ORIENT - это перечисление, которое задает ориентацию макета страницы.

  • WD_ORIENT.PORTRAIT: Книжная ориентация.
  • WD_ORIENT.LANDSCAPE: Альбомная ориентация.

Пример:

from docx.enum.section import WD_ORIENT

section = document.sections[-1]
section.orientation = WD_ORIENT.LANDSCAPE

WD_PARAGRAPH_ALIGNMENT:

Короткая ссылка для импорта WD_ALIGN_PARAGRAPH - это перечисление, которое задает тип выравнивание всего текста в абзаце/параграфе.

  • WD_ALIGN_PARAGRAPH.LEFT - по левому краю;
  • WD_ALIGN_PARAGRAPH.CENTER - по центру;
  • WD_ALIGN_PARAGRAPH.RIGHT - по правому краю;
  • WD_ALIGN_PARAGRAPH.JUSTIFY - по ширине;
  • WD_ALIGN_PARAGRAPH.DISTRIBUTE - символы распределяются так, чтобы заполнить всю ширину абзаца;
  • WD_ALIGN_PARAGRAPH.JUSTIFY_MED - оправдано со средней степенью сжатия символов;
  • WD_ALIGN_PARAGRAPH.JUSTIFY_HI - оправдано высокой степенью сжатия символов;
  • WD_ALIGN_PARAGRAPH.JUSTIFY_LOW - оправдано с низким коэффициентом сжатия символов.

Пример:

from docx.enum.text import WD_ALIGN_PARAGRAPH

paragraph = document.add_paragraph()
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER

WD_LINE_SPACING:

Перечисление WD_LINE_SPACING задает формат межстрочного интервала, применяемый к объекту форматирования абзаца ParagraphFormat.line_spacing_rule.

Устанавливаемые значения:

  • WD_LINE_SPACING.ONE_POINT_FIVE - Space-and-a-half line spacing.
  • WD_LINE_SPACING.AT_LEAST - межстрочный интервал всегда должен быть не менее указанного значения;
  • WD_LINE_SPACING.DOUBLE - двойной межстрочный интервал;
  • WD_LINE_SPACING.EXACTLY - межстрочный интервал - это точно указанная величина;
  • WD_LINE_SPACING.MULTIPLE - межстрочный интервал указывается как кратный высоте строки. Изменение размера шрифта пропорционально изменит межстрочный интервал;
  • WD_LINE_SPACING.SINGLE - одинарный межстрочный интервал (по умолчанию).

Пример:

from docx.enum.text import WD_LINE_SPACING

paragraph = document.add_paragraph()
paragraph.paragraph_format.line_spacing_rule = WD_LINE_SPACING.EXACTLY

WD_UNDERLINE:

Перечисление WD_UNDERLINE задает стиль подчеркивания, которое применяется к серии символов/слов текста.

Устанавливаемые значения:

  • WD_UNDERLINE.NONE - без подчеркивания. Этот параметр отменяет любое унаследованное значение подчеркивания, поэтому может использоваться для удаления подчеркивания из серии, которая наследует подчеркивание из содержащего его абзаца. Обратите внимание, что это не то же самое, что присвоение None для Run.underline. Значение None, допустимо для присваивания, но заставляет прогон наследовать значение подчеркивания. Назначение WD_UNDERLINE.NONE приводит к безоговорочному отключению подчеркивания.
  • WD_UNDERLINE.SINGLE - подчеркивание одной линией. Обратите внимание, что этот параметр доступен только для присваивания в том смысле, что для прогона с этим параметром возвращается True (а не значение в виде WD_UNDERLINE.SINGLE).
  • WD_UNDERLINE.WORDS - подчеркивает только слова (т.е. не подчеркивает пробелы между словами).
  • WD_UNDERLINE.DOUBLE - подчеркивание двойной линией.
  • WD_UNDERLINE.DOTTED - подчеркивание точками.
  • WD_UNDERLINE.THICK - подчеркивание одной толстой линией.
  • WD_UNDERLINE.DASH - подчеркивание пунктирной линией.
  • WD_UNDERLINE.DOT_DASH - подчеркивание чередующимся точки и тире.
  • WD_UNDERLINE.DOT_DOT_DASH - подчеркивание точка-точка-тире.
  • WD_UNDERLINE.WAVY - подчеркивание одной волнистой линией.
  • WD_UNDERLINE.DOTTED_HEAVY - подчеркивание жирными точками
  • WD_UNDERLINE.DASH_HEAVY - подчеркивание жирной пунктирной линией.
  • WD_UNDERLINE.DOT_DASH_HEAVY - чередующиеся жирные точки и жирные тире.
  • WD_UNDERLINE.DOT_DOT_DASH_HEAVY - чередующиеся жирные точка-точка-тире.
  • WD_UNDERLINE.WAVY_HEAVY - жирная волнистая линия.
  • WD_UNDERLINE.DASH_LONG - длинные пунктирные линии.
  • WD_UNDERLINE.WAVY_DOUBLE - двойная волнистая линия.
  • WD_UNDERLINE.DASH_LONG_HEAVY - длинные жирные пунктирные линии.

Смотрим пример:

import docx
from docx.enum.text import WD_UNDERLINE

doc = docx.Document()
p = doc.add_paragraph()
p.add_run('Подчеркивает только слова.\n').underline = WD_UNDERLINE.WORDS
p.add_run('Подчеркивает точками.\n').underline = WD_UNDERLINE.DOTTED
p.add_run('Подчеркивает двойной линией.\n').underline = WD_UNDERLINE.DOUBLE
p.add_run('Подчеркивает волнистой линией.').underline = WD_UNDERLINE.WAVY
doc.save('test.docx')

WD_COLOR_INDEX:

Перечисление WD_COLOR_INDEX задает применяемый стандартный предустановленный цвет в MS Word. Используется для выделения шрифтов и, возможно, других объектов.

Устанавливаемые значения:

  • WD_COLOR_INDEX.AUTO - Автоматический цвет. По умолчанию, обычно черный.
  • WD_COLOR_INDEX.BLACK - Черный цвет.
  • WD_COLOR_INDEX.BLUE - Синий цвет
  • WD_COLOR_INDEX.BRIGHT_GREEN - Ярко-зеленый цвет.
  • WD_COLOR_INDEX.DARK_BLUE - Цвет темно-синий.
  • WD_COLOR_INDEX.DARK_RED - Темно-красный цвет.
  • WD_COLOR_INDEX.DARK_YELLOW - Темно-желтый цвет.
  • WD_COLOR_INDEX.GRAY_25 - 25% серого цвета.
  • WD_COLOR_INDEX.GRAY_50 - 50% серого цвета.
  • WD_COLOR_INDEX.GREEN - Зеленый цвет.
  • WD_COLOR_INDEX.PINK - Розовый цвет.
  • WD_COLOR_INDEX.RED - Красный цвет.
  • WD_COLOR_INDEX.TEAL -
  • WD_COLOR_INDEX.TURQUOISE - Бирюзовый цвет.
  • WD_COLOR_INDEX.VIOLET - Фиолетовый цвет.
  • WD_COLOR_INDEX.WHITE - Белый цвет.
  • WD_COLOR_INDEX.YELLOW - Желтый цвет.

Пример:

import docx
from docx.enum.text import WD_COLOR_INDEX

doc = docx.Document()
p = doc.add_paragraph()
p.add_run('Выделение ')
p.add_run('текста').font.highlight_color = WD_COLOR_INDEX.YELLOW
p.add_run(' цветом.')
doc.save('test.docx')

WD_TABLE_ALIGNMENT:

Перечисление WD_TABLE_ALIGNMENT задает тип выравнивания таблицы.

  • WD_TABLE_ALIGNMENT.LEFT: По левому краю.
  • WD_TABLE_ALIGNMENT.CENTER: По центру.
  • WD_TABLE_ALIGNMENT.RIGHT: По правому краю.

Пример:

from docx.enum.table import WD_TABLE_ALIGNMENT

table = document.add_table(3, 3)
table.alignment = WD_TABLE_ALIGNMENT.CENTER

WD_ROW_HEIGHT_RULE:

Короткая ссылка для импорта WD_ROW_HEIGHT, задает правило определения высоты строки таблицы.

  • WD_ROW_HEIGHT.AUTO: Высота строки настраивается таким образом, чтобы соответствовать самому высокому значению в строке.
  • WD_ROW_HEIGHT.AT_LEAST: Высота строки должна быть не менее минимального заданного значения.
  • WD_ROW_HEIGHT.EXACTLY: Высота строки - это точное значение.

Пример:

from docx.enum.table import WD_ROW_HEIGHT

table = document.add_table(3, 3)
table.rows[0].height_rule = WD_ROW_HEIGHT.EXACTLY

WD_CELL_VERTICAL_ALIGNMENT:

Короткая ссылка для импорта WD_ALIGN_VERTICAL задает вертикальное выравнивание текста в одной или нескольких ячейках таблицы.

  • WD_ALIGN_VERTICAL.TOP: Текст выровнен по верхней границе ячейки.
  • WD_ALIGN_VERTICAL.CENTER: Текст выровнен по центру ячейки.
  • WD_ALIGN_VERTICAL.BOTTOM: Текст выравнивается по нижней границе ячейки.
  • WD_ALIGN_VERTICAL.BOTH: Это спецификация OpenXML, но не в самого MS Word. Неясно, какое поведение вызывает этот параметр. Если узнаете, пожалуйста, сообщите нам об этом, и мы обновим документацию. В противном случае, лучше избегать этого варианта.

Пример:

from docx.enum.table import WD_ALIGN_VERTICAL

table = document.add_table(3, 3)
table.cell(0, 0).vertical_alignment = WD_ALIGN_VERTICAL.BOTTOM

WD_STYLE_TYPE:

Перечисление WD_STYLE_TYPE задает один из четырех типов стиля: абзац, символ, список или таблица..

CHARACTERCharacter style.LISTList style.PARAGRAPHParagraph style.TABLETable style.

  • WD_STYLE_TYPE.CHARACTER: Стиль слова/символа.
  • WD_STYLE_TYPE.LIST: Стиль списка.
  • WD_STYLE_TYPE.PARAGRAPH: Стиль абзаца/параграфа.
  • WD_STYLE_TYPE.TABLE: Стиль таблицы.

Пример:

from docx import Document
from docx.enum.style import WD_STYLE_TYPE

styles = Document().styles
assert styles[0].type == WD_STYLE_TYPE.PARAGRAPH