parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Рекоменую docxtpl

nkostya 24.09 13:50

Можно файл docx скормить и в нем через jinja шаблон будут подтсавлены нужные данные

Скрипт:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from docxtpl import DocxTemplate
import os, sys, json

#print(sys.argv)

doc = DocxTemplate(sys.argv[1])
context = json.load(sys.stdin)
doc.render(context, autoescape=True)
doc.save(sys.argv[2])
Класс для вызова
##############################################################################
#	
##############################################################################

@CLASS
Wordgen

@OPTIONS
locals



##############################################################################
@convert[sPathTemplate;sPathResult;hContext]
	^if(!def $sPathTemplate){
		^throw[wordgen.args;No template file]
	}
	^if(!def $sPathResult){
		^throw[wordgen.args;No result file]
	}
	
	$args[^table::create{arg}]
	^args.append{${request:document-root}${sPathTemplate}}
	^args.append{${request:document-root}${sPathResult}}

	$result[^file::exec[binary;wordgen][ $.stdin[^json:string[$hContext][ $._default[_json] ]] ][$args]]

	^if($result.status){
		...
	}

#end @convert[]