Мне нужно разрешить пользователям редактировать и распечатывать клиентские документы (счета и другие).
Пользователь заполняет форму для печати (выберите клиентов, месяц, сколько копий каждого из 4 типов документов ему нужно) и нажмите кнопку «Печать».
Далее моя система должна сделать (алгоритм):
result = create new word-friendly file # because user may manually edit it later
for client in form_clients:
snapshot = select row in snapshots table
where client == client and month == form_month
document1 = generate_from_template(snapshot, tpl1.docx)
for 1 to form_how_much_copies_of_1_type_of_document_he_or_she_needs:
result += document1
document2 = generate_from_template(snapshot, tpl2.docx)
for 1 to form_how_much_copies_of_2_type_of_document_he_or_she_needs:
result += document2
document3 = generate_from_template(snapshot, tpl3.docx)
for 1 to form_how_much_copies_of_3_type_of_document_he_or_she_needs:
result += document3
document4 = generate_from_template(snapshot, tpl4.docx)
for 1 to form_how_much_copies_of_4_type_of_document_he_or_she_needs:
result += document4
print result
Требования:
- возможность редактировать результат (нужно в формате word-frindly)
- разрывы страниц (каждый документ на новой странице)
- таблицы, не очень простые, посмотрите на счет tpl, например:

- размер шрифта и стиль (например, жирный)
- сохранить текстовую позицию
Мой вопрос: как сгенерировать этот файл (результат)?
Есть проект https://github.com/mikemaccana/python-docx, но не уверен, что он может работать с шаблонами (или, по крайней мере, генерировать таблицы по мере необходимости) ...
Или я могу сохранить все свои шаблоны .docx как html и использовать их как обычные шаблоны django, но не уверен, как объединить их вместе в одном документе и создать разрывы страниц ...
Или, может быть, мне стоит взглянуть на другие форматы файлов, совместимые со словами? ...
p.s. лучше использовать python, но это не критично, я могу использовать java / perl / ruby / php / bash / etc ... и устанавливать любые новые Ubuntu-совместимые пакеты ...