@tayoboc

Как задать абзацный отступ docx python?

Добрый день!
Как задать абзацный отступ в документе формируемом с помощью docx?
Ну никак не могу разобраться в документацией.
Если можно - киньте пример кода.
first_line_indent смог сделать. Но это получается только для одного абзаца.
Чтобы использовать для трех абзацев - нужно вводить три переменных (исходя из того кода, что у меня получился).
Как сделать это для всего документа?

UPD.
\t - помогает. Но интересен вариант использования встроенных возможностей docx пакета. Документ то может быть ОЧЕНЬ многостраничный.

from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_TAB_ALIGNMENT, WD_TAB_LEADER


document = Document()

p = document.add_paragraph('A plain paragraph having some ')

paragraph_format = p.paragraph_format
paragraph_format.first_line_indent = Inches(0.5)
tab_stops = paragraph_format.tab_stops
tab_stop = tab_stops.add_tab_stop(Inches(1.5), WD_TAB_ALIGNMENT.RIGHT, WD_TAB_LEADER.DOTS)

p.add_run('bold').bold = True
p.add_run(' и немного русского.')

s = document.add_paragraph(
    '''a plain paragraph having some a plain paragraph having some a plain paragraph having some a plain paragraph having some a plain paragraph having some a plain paragraph having some a plain paragraph  having some a plain paragraph having some ''')
paragraph_format = s.paragraph_format
paragraph_format.first_line_indent = Inches(0.5)


document.save('dem55.docx')
  • Вопрос задан
  • 3411 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Hassle
Думаю тебе это уже не поможет (прошло 3 года), но надеюсь поможет другим

Вот что вам может понадобится при оформлении документа

from docx import Document
from docx.shared import Inches, Pt

#_______1
section = document.sections[-1]
section.top_margin = Inches(0.8) #Верхний отступ
section.bottom_margin = Inches(0.8) #Нижний отступ
section.left_margin = Inches(1.2) #Отступ слева
section.right_margin = Inches(0.6) #Отступ справа
#_______2
paragraph_format = document.styles['Normal'].paragraph_format
paragraph_format.line_spacing = Pt(12) #межстрочный интервал
#_______3
style = document.styles['Normal']
font = style.font
font.name ='Times New Roman' #Стиль шрифта
font.size = Pt(12) #Размер шрифта


1. Ввод отступов "точный" и ввод чисел может ввести в ступор, но не волнуйтесь сейчас я все покажу на изображении. Каждое деление на линейке ровно 0.1 Например 1.2 будет ровно 12 делениям (см. изображение)
601349b08a726465888498.png

2. Межстрочный интервал настраивается очень просто, выбор формата интервала зависит от формата вводимого числа
Примеры:
Pt(12) - Точный формат
Inches(12) - Также точный формат, но лучше его лучше не использовать, ведь введя число 12 на выходе мы получим 864 пт, так что лучше использовать Pt()
12 - Множительный

3. Тут все и так понятно, Стиль можно выбрать из имеющихся в вашем каталоге, а размер можно указывать также как и межстрочный интервал

Надеюсь вам это поможет.
Ответ написан
@barolina
turn coffee into code
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы