Python 使用docx模板库渲染docx图片

Python docx image rendering using docx template library

我正在尝试将图像渲染为包含 jinja 挂钩的 docx 模板。

我正在使用来自 docx 模板的 inlineImage 方法,我能够渲染它在 libreoffice writer 中打开的图像,但不能在它应该真正使用的 msword 中渲染。

在 msword 中渲染了一个图像但没有显示,只显示了一个空白区域。

我什至尝试过使用 subdoc 方法,它也给了我同样的结果。

请帮我理解哪里做错了。

我正在使用 python-docx 0.8.7 和 docxtemplate 0.5.17 库来实现结果

我必须使用这些版本,因为 docxtemplate 强制使用此版本的 python-docx

我将此作为答案发布,以帮助其他人尝试实现同样的目标。

在我的代码中,我在将值作为 InlineImage(template, tmpfile.name) 传递给 inlineimage 之前使用 NamedTemporaryFile(delete=None) 创建图像,这导致了问题,我改造了我的逻辑以在执行后直接添加图像一些基于图像宽高比调整大小并将图像的路径而不是文件名发送到 InlineImage 方法中,它就像一个魅力。