【问题标题】:Python script - insert image using mailmerge into docx filePython 脚本 - 使用 mailmerge 将图像插入 docx 文件
【发布时间】:2019-06-13 02:42:39
【问题描述】:

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

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

{ INCLUDEPICTURE "{ MERGEFIELD 1.png * MERGEFORMAT }" * MERGEFORMAT }

但我无法让它为我工作。是否可以将图像的路径插入其中,然后 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)

谢谢!

【问题讨论】:

  • 你绝对需要使用mailmerge吗?我发现这个似乎支持向文档添加图片的另一个包:python-docx.readthedocs.io/en/latest
  • 感谢您的回复。 Mailmerge 不是必需的,因此我正在研究 Python-docx 包,但尽管插入图像工作正常,但看起来我无法将其插入现有文档中非常特定的位置。对于 python-docx,我可以在底部、新表等中添加图像,但不能在内部已经有很多信息的模板中添加图像-在我的场景中进行客户端大众通信-至少我找不到如何以这种方式使用它。跨度>

标签: python image email merge mailmerge


【解决方案1】:

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

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

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

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

二。按住 CTRL 的同时按 F9

三。输入:

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

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

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

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

六。如果您的图像未显示,请全选 (CTRL + A) 并按 F9 刷新。 Word 文件更新时可能会有一些延迟。如果图像仍然不显示,请专门单击它并按 F9。如果图像仍然无法显示,则说明您的第 1 步或第 2 步有问题。

【讨论】:

  • 对于第 2 步,++ 是双击吗?
  • 错字。应该是 + F9(在按住 F9 时保持控制)
  • 我昨天试图复制这个答案有点卡住了,也许我的评论会帮助其他人:应该通过插入添加 INCLUDEPICTURE -> Quickparts -> 添加字段 -> IncludePicture 并在那里输入名称(例如,在“在此处插入合并字段”的答案中,然后突出显示“在此处插入...”并再次单击“插入”->“Quickparts”->“添加字段”->“合并字段”并在那里为该项目添加相同的名称。
【解决方案2】:

对于阅读本文的任何人,我认为在没有任何人工交互的情况下完全更新邮件合并是不可能的。 Python 可以正确输入绝对文件路径(假设格式正确,如上面 usario1223 的评论),但用户仍必须进入 Word 并按 F9 以“更新”合并字段。

这让我非常头疼,但我相信这是不可能的。这在图书馆的文档中被列为“愿望清单”项目是有原因的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2018-03-13
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多