По рецепту
zoldaten я средствами python при помощи библиотеки
docxtemplate открываю docx, из словаря раскладываются значения в управляемые поля документа (или как это называется? ContentControls?)
Кодcontext = {'Договор': agreement,
'Название_подрядчика': opponent_name,
'Подрядчик_коротко': opponent_short_name,
'ГД_подрядчика': directors_name}
def make_next_doc(path_to_temple: Path,
context: dict,
output_name: str,
directory: Path):
doc = DocxTemplate(path_to_temple/"template.docx")
doc.render(context)
doc.save(directory/f"{output_name}.docx")
При этом в файле template.docx должны стоять поля-формулы с примерно таким содержанием:
{{Договор}}
- вместо них подставляется значение из agreement.
Это всё работает нормально.
Но есть нюанс...
При последующем открытии документа все эти поля подсвечиваются, а word переходит в режим "конструктора". Это и выглядит не очень, и вообще не порядок. Пользователи пугаются.
Как бы убрать все эти поля, но оставить то, что туда внес скрипт.
Копаясь в инете, нашел, что вроде как можно сделать это командой Word-а "RemoveContentControlsAndKeepContents".
Но как эта команда работает из Python? Может, через win32 и Word.Application заморочиться? Но как, я что-то не догоняю... всю ночь красноглазил.