python-docx - как управлять шрифтом и другими атрибутами

Я использую python-docx для создания файлов .docx. Я хотел бы иметь возможность управлять стилем абзацев (и отдельных слов внутри, если это возможно), которые я добавляю в тело документа.

Бизнес-конец создания абзаца выглядит так:

body.append (абзац («Это новый абзац»))

Я не знаком со сложностями XML, и, честно говоря, изучить его достаточно, чтобы анализировать и манипулировать им с помощью lxml, было бы излишним для того, что я имел в виду. Может ли кто-нибудь привести простой пример, например, изменения шрифта в моем абзаце выше со стандартного на Courier New?

Здесь есть пара похожих (но без ответа) вопросов, так что извиняюсь за нарушение протокола, если я ошибся.


person ropz    schedule 26.06.2013    source источник


Ответы (1)


Я не думаю, что есть супер простой способ одним щелчком мыши отредактировать шрифт / размер и т. Д. С помощью модуля docx (пока, по крайней мере). К счастью, с lxml это относительно легко, и не так уж сложно получить базовое представление о формате xml, немного потрудившись.

Попробуйте изменить расширение вашего файла с .docx на .zip и откройте /word/document.xml. Элементы там, которые изменяют конкретный текст, являются дочерними элементами как w: pPr (свойства абзаца), так и w: rPr (свойства запуска). Эта ссылка предоставляет хороший обзор методов, которые можно использовать для просеивания файла document.xml. файл и добавляйте / удаляйте / редактируйте по своему усмотрению.

Я также предлагаю взглянуть на функцию def paragraph в модуле docx.py. Там есть пара прямых примеров добавления различных описательных элементов к абзацам и пробегам.

person Fred the Fantastic    schedule 30.07.2013