Python脚本-使用mailmerge将图像插入docx文件

时间:2019-01-18 19:57:42

标签: python image email merge mailmerge

我正在研究一个python脚本,该脚本分析excel文件,并且基于以下条件,而不是使用mailmerge库用多个变量填充docx文件。对于字符串值,一切正常,但在将图像插入文件时遇到问题。作为一种解决方法,由于我现在必须从7张图像中进行选择,所以我刚刚创建了7个模板,并根据某些条件选择了正确的模板,但在不久的将来,我将在docx文件中添加更多图像组合,然后创建50张图片模板不是一个好的选择。

在Google上,我发现可以将图像插入具有以下结构的docx文件中:

{包含“ {MERGEFIELD 1.png * MERGEFORMAT}” * MERGEFORMAT}

但是我不能让它对我有用。是否可以将图像的路径插入其中,然后Word将使用它来插入图像?像这样的东西:

{包含“ {path_to_image * MERGEFORMAT}” * MERGEFORMAT}

from mailmerge import MailMerge
document = MailMerge(template.docx)
document.merge(path_to_image="C:\\image.png")
document.write(document_name)

谢谢!

1 个答案:

答案 0 :(得分:0)

1。没有PNG文件:您不能插入.png文件。您只能插入.jpg文件。

2。使用绝对文件路径::确保您使用带有双斜杠的绝对文件路径,例如:  C:\ temp \ sample.jpg

3。将代码插入MS Word:必须以特定方式插入您插入Word的代码:

i。在您的MS Word模板中,按:ALT + F9

ii。按住CTRL + + F9

iii。输入:

{ INCLUDEPICTURE "{INSERT MERGE FIELD HERE}" \*MERGEFORMAT\d }

突出显示所有{INSERT MERGE FIELD HERE}字符,然后从顶部工具栏中选择您的合并字段名称。选择后,字段名称将插入大括号内。不要简单地从另一部分复制并粘贴合并文件。您必须分别创建它们。

iv。按:ALT + F9返回正常编辑模式。

v。完成单个文档的邮件合并

vi。如果您的图像未显示,请全选(CTRL + A)并按F9刷新。 Word文件更新时可能会有些延迟。如果仍然无法显示图像,请单击它,然后按F9。如果图像仍然无法显示,则说明您在步骤1或2中遇到了问题。