Здравствуйте, я столкнулся с каверзной, но очень интересной задачей.
Мне нужно написать функцию на python, которой передают 5 значений:
source_docx # path - docx файл, из которого нужно забрать данные
outputdocx # path - docx, в который они будут вставлены
trimStart # str - фраза, с которой нужно обрезать данные (к примеру, "глава 1")
trimEnd # str - фраза, по которую данные будут обрезаны (к примеру, "глава 2")
relpace # str - строчка в outputdocx, которую нужно заменить ( к примеру {{replaceme}})
Самый сок этого всего - необходимо сохранить форматирование, а также перенести все таблицы, ссылки, изображения и бог знает что ещё, что находится между trimStart и trimEnd
Я бы хотел спросить у опытных людей, какой подход избрать, чтобы пролить минимум слёз :)
За время изучения вопроса, я уже понял, что библиотека python-docx не позволяет сохранить стили и переносить изображения, так как структура документа-донора не известна заранее.
Это действие очень просто совершить человеку - буфер обмена в Windows сохраняет и форматирование и все элементы документа. Я склоняюсь к записи действий с помощью кого-нибудь вроде win32com.
Также есть библиотека
C# Syncfusion, в которой такая find and replace уже реализована, но ... python =(
Ещё есть макросы, но я пока совсем не понимаю, как их привязать к функции в python.
В общем, если вы сталкивались с такой задачей или у вас есть какие-то мысли - помогите мне, пожалуйста