Добавление номеров страниц в верхний или нижний колонтитул с использованием версий 0.8.8+ - PullRequest
1 голос
/ 12 апреля 2019

Недавно в версии 0.8.8 из python-docx добавлена ​​прямая поддержка верхних и нижних колонтитулов .

Теперь можно просто добавить верхний или нижний колонтитул следующим образом:

from docx import Document
document = Document()

header = document.sections[0].header
header.add_paragraph('This is an example Header') 

footer = document.sections[0].footer
footer.add_paragraph('This is an example Footer')

До этого выпуска можно было гибко добавлять верхние и нижние колонтитулы, используя шаблонный подход .

С помощью шаблонов очень просто включить такие вещи, как номера страниц.Однако, похоже, что это не относится к реализации верхних и нижних колонтитулов в новых версиях.

Существует ли простой способ добавления номеров страниц в версиях 0.8.8 и более поздних?

1 Ответ

1 голос
/ 12 апреля 2019

Полагаю, вы обнаружите, что «автоматический» номер страницы, используемый в верхнем или нижнем колонтитуле, имеет тип поля .Поля еще не были реализованы в python-docx, так что вы должны были бы это сделать самостоятельно, добавив необходимый XML-код из точки, максимально близкой к той, которую вы можете получить, что, как я ожидаю, будет элементом <w:r> дляrun.

Я бы хотел добавить такой номер страницы в заголовок, используя Word, а затем проверить полученный XML, используя opc-diag.Это определенно определило бы, куда должен идти XML.

Оттуда вы можете получить элемент run, используя r = run._r, а затем использовать lxml вызовы для вставки нужного вам XML.

...