import jinja2
from docxtpl import DocxTemplate
from docxtpl import InlineImage
from docx.shared import Mm, Inches, Pt
tpl = DocxTemplate('template.docx')
context = {'user_name': '小明',
'user_sex': '男',
'username': '123456',
'user_birth': '2000年11月',
'user_phone': '123456',
'user_email': '[email protected]',
'user_birthplace': '山西',
'user_unit': '13班',
'user_photo': InlineImage(tpl, '01.jpg',width=Mm(40),height=Mm(56)),
'app_list': [{'app_name': '奖学金', 'app_data': '2020年11月'}, {'app_name': '荣誉证书', 'app_data': '2020年1月'}]
}
jinja_env = jinja2.Environment(autoescape=True)
tpl.render(context, jinja_env)
tpl.save('template1.docx')
用来对word文件进行操作,可以生成表格,生成文本内容,相当强大。而 DocxTemplate模块用于通过模版生成文件,只需体验5分钟,即可让人爱上这个模块!!!
那么,我们为什么可以放入图片呢?那就和InlineImage模块有关系啦,通过InlineImage对象我们可以将图片变成可识别内容,然后就可以成功插入。
文档地址:https://docxtpl.readthedocs.io/en/latest/
这个库,和django模板系统类似,学Django的都知道。不过没学过也无妨,上面的链接有相关的说明。
不喜欢读英文的???来这里:https://www.w3cschool.cn/yshfid/
相对路径问题:
如果是不在当前目录,使用../
可能会报错,可以使用:
sys.path[0]+文件名
可以尝试print(sys.path[0])
来确定文件名怎么写