Как добавить границу страницы с помощью python-docx

#python #python-3.x #python-docx

#python #python-3.x #python-docx

Вопрос:

Я хочу добавить границу страницы в свой документ MS Word с помощью python-docx. Как я могу это сделать?

Я проверил документацию раздела, но ничего об этом не нашел.

Комментарии:

1. parcero я ответил на ваш вопрос? если нет, могу ли я что-нибудь добавить к своему ответу?

Ответ №1:

Официальная библиотека python-docx по-прежнему не поддерживается, но вы можете реализовать ее самостоятельно. вы ищете границы страницы, хранящиеся в разделе свойства раздела.

Вот пример кода, который должен вам помочь:

 import docx
from docx.oxml.xmlchemy import OxmlElement
from docx.oxml.shared import qn

doc = docx.Document()
sec_pr = doc.sections[0]._sectPr # get the section properties el
# create new borders el
pg_borders = OxmlElement('w:pgBorders')
# specifies how the relative positioning of the borders should be calculated
pg_borders.set(qn('w:offsetFrom'), 'page')
for border_name in ('top', 'left', 'bottom', 'right',): # set all borders
    border_el = OxmlElement(f'w:{border_name}')
    border_el.set(qn('w:val'), 'single') # a single line
    border_el.set(qn('w:sz'), '4') # for meaning of  remaining attrs please look docs
    border_el.set(qn('w:space'), '24')
    border_el.set(qn('w:color'), 'auto')
    pg_borders.append(border_el) # register single border to border el
sec_pr.append(pg_borders) # apply border changes to section

doc.save('border_test.docx')