python-docx и пользовательский стиль пули

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

Вопрос:

У меня есть очень конкретная вещь, которую я пытаюсь сделать, поэтому я не знаю, может ли кто-нибудь из вас дать мне советы по этому поводу.

Главное, что я хочу сделать, — это создать файлы docx из файлов txt.

Я хочу, чтобы этот файл docx следовал четким правилам форматирования, особенно в отношении маркированных списков. Мне не нравятся стили списка слов по умолчанию, поэтому я хотел бы создать свой собственный.

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

В те времена мои файлы txt были преобразованы в старый формат MS RTF (со всеми соответствующими тегами), поэтому я также мог попытаться использовать строки RTF непосредственно в сгенерированном документе (я пытался сделать это с помощью docxtpl), но у меня ничего не получилось.

У кого-нибудь есть идея на этот счет? Я нашел аналогичный вопрос, но, к сожалению, ответа не последовало, поэтому, боюсь, решения нет.

Ответ №1:

Любой файл .docx, с которого вы начинаете использовать document = Document("my_docx.docx") , является файлом «шаблона», и любые стили и другие настройки по умолчанию, которые он содержит, применяются к документу, который вы затем создаете с помощью последующих python-docx вызовов.

Поэтому, если вам не нравятся стили по умолчанию, просто создайте новый пустой документ с помощью Word и используйте пользовательский интерфейс Word для редактирования этих стилей в соответствии с требованиями, затем сохраните его и используйте в качестве исходного документа. Затем вы можете использовать обычные имена стилей для получения настраиваемого результата.

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

1. Это вариант, но я бы предпочел сделать это программно, его проще поддерживать в скрипте python, чем в шаблоне docx.