先贴代码
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上面了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.