Единственный мной найденный удобный скрипт для программного редактирования документов word, был кардинально переписан под мои нужды, да и тот иногда выдает ошибки. (например в офис 2007 из-за разницы форматов одного и того-же docx, в сгенерированных документах просто пропадают пробелы между словами). Работает он так: открыл шаблон, нашел в структуре файла часть где хранится текст, (как в примере), убрал лишнюю разметку, вытащил "чистый" текст из белиберды (при этом сохранив в памяти места где символы находились), нашел "контрольные" слова в чистом тексте, подставил новые слова в местах где находились "контрольные", создал новый документ скопировав структуру старого, вставил в структуру созданного отредактированный текст.
Сам скрипт это 83 строчки кода, но вкупе с 4500 строчек кода (программа "жулик"), где из за одной буквы может быть ошибка, которую не так просто найти, это тот еще геморой.
Сейчас под новую идею с запросами на несколько адресатов сразу, думаю придется переписывать этот кусок из 83 строк во что-то новое, поскольку старое не работает с новой идеей. Скорее всего если заработает новое, то придется переписать и часть старого.
Формат doc так вообще такая мутотень, что в нее из под python очень сложно залезть. Есть еще форматы odt (open office, очень похож по структуре на docx), html (похож на пример, только чуть проще) и pdf, но там либо сложности с разметкой,либо кривое отображение word-ом, либо невозможностью редактирования после вывода из программы. Можно конечно написать все в txt, обычным текстом, но после того как документ будет создан, его надо будет править в word-e приводя под требования делопроизводства, и производительность сразу падает.
При наличии свободного времени, от непосредственной работы по расследованию уголовных дел, я параллельно работаю над несколькими проектами (карточки, запросы, жулик, уголовное дело) Сейчас я пытаюсь сделать редактор документов (похожий на word только обрезанный по максимуму без всяких там красивостей, в который будет попадать заготовка из шаблона после генерации. Из нее она будет распечатываться на принтер или сохраняться в какой-нибудь формат.
Сейчас это выглядит как-то так:
и это далеко от того что я хочу получить в конечном итоге
Поэтому, чтоб уменьшить количество ошибок от кривых ручек, шаблон документа пока делается мной под программу и программа пишется под требования шаблона.