先贴代码
import jinja2
from docxtpl import InlineImage, DocxTemplate
from docx.shared import Mm
# template = DocxTemplate('template.docx')
template = DocxTemplate('template_without_line.docx')
def get_inline_image(template):
inline_image = {}
inline_image['img1'] = InlineImage(template, 'img1.png', width=Mm(146.4))
inline_image['img2'] = InlineImage(template, 'img2.png', width=Mm(146.4))
inline_image['img3'] = InlineImage(template, 'img3.png', width=Mm(146.4))
inline_image['img4'] = InlineImage(template, 'img4.png', width=Mm(146.4))
return inline_image
data = get_inline_image(template)
jinja_env = jinja2.Environment(autoescape=True)
template.render(data, jinja_env)
template.save('result.docx')
我创建了两个模板,template.docx
和template_without_line.docx
,template.docx
里面有四条直线,template_without_line.docx
有两条直线,其他的都一样。
但是用jinja2
渲染以后发现通过template_without_line.docx
生成的 Word 是可以打开的,template.docx
生成的打开就会报“发现无法读取的内容”这个错误(如果信任文档仍然是可以打开的)。
只是两个直线的差距,会对渲染造成什么影响?
模板和代码都已经提交到GitHub上面了。