Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本-使用mailmerge将图像插入docx文件_Python_Image_Email_Merge_Mailmerge - Fatal编程技术网

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

Python脚本-使用mailmerge将图像插入docx文件,python,image,email,merge,mailmerge,Python,Image,Email,Merge,Mailmerge,我正在编写一个python脚本,该脚本分析excel文件,并基于使用mailmerge库用多个变量填充docx文件。对于字符串值,一切正常,但我在将图像插入文件时遇到问题。由于我现在必须从7个图像中进行选择,作为一种解决方法,我刚刚创建了7个模板,我正在根据一些条件选择正确的模板,但在不久的将来,我将在docx文件中有更多的图像组合,然后创建50个模板不是一个好的选择 在谷歌上,我发现图像可以插入到docx文件中,其结构如下: {INCLUDEPICTURE“{MERGEFIELD 1.png*

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

在谷歌上,我发现图像可以插入到docx文件中,其结构如下:

{INCLUDEPICTURE“{MERGEFIELD 1.png*MERGEFORMAT}”*MERGEFORMAT}

from mailmerge import MailMerge
document = MailMerge(template.docx)
document.merge(path_to_image="C:\\image.png")
document.write(document_name)
但我不能让它为我工作。是否可以将图像的路径插入其中,然后Word将使用该路径插入图像?诸如此类:

{INCLUDEPICTURE“{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。没有PNG文件:无法插入.PNG文件。您只能插入.jpg文件

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

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

一,。在MS Word模板中,按:ALT+F9

二,。按住CTRL键同时按F9

iii.输入:

{ INCLUDEPICTURE "{INSERT MERGE FIELD HERE}" \*MERGEFORMAT\d }
突出显示所有{INSERT MERGE FIELD HERE}字符,然后从顶部工具栏中选择合并字段名称。选择后,字段名将插入到花括号内。不要简单地从另一节复制和粘贴合并文件。您必须单独创建它们

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

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


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

您是否确实需要使用
mailmerge
?我发现另一个软件包似乎支持在文档中添加图片:谢谢你的回复。Mailmerge不是一个要求,所以我研究了PythonDocx包,但尽管插入图像效果很好,但看起来我无法将其插入现有文档中非常特定的位置。对于python docx,我可以在底部、新表等中添加图像,但不能在已经包含许多信息的模板中添加图像-在我的场景中是客户端大众传播-至少我找不到如何以这种方式使用它。对于步骤2,
++
是双击吗?打字错误。应为+F9(如按F9时在保持控制中)