首页 > 解决方案 > 如何使用 Python 将图像插入到现有 Word 文档中的特定位置?

问题描述

我想要做的是使用 Python 将图像插入到现有 Word 文档中的特定位置。我查看了各种库来做到这一点;我正在使用docx-mailmerge包使用 Word 合并字段插入文本和表格,但不幸的是,图像合并只是 TODO/wishlist 功能。python-docx同时允许图像插入,但只能在文档末尾,而不是在特定位置。

是否有另一个库可以做到这一点,或者有一个很好的技巧来完成它?

标签: pythonms-word

解决方案


摆弄底层 API(并且感谢这个 SO 答案)我破解了我的成功之路:

  1. 在你的 Word 文档中添加一个占位符,图像应该放在哪里,就像一行这样说[ChartImage1]
  2. 在包含该文本的文档中查找段落对象
  3. 用空字符串替换该段落的文本
  4. 添加一个运行,并在其中添加您的图像

所以像:

document = Document("template.docx")
image_paras = [i for i, p in enumerate(document.paragraphs) if "[ChartImage1]" in p.text]
p = document.paragraphs[image_paras[0]]
p.text = ""
r = p.add_run()
r.add_picture("path/to/image.png")
document.save("my_doc.docx")

推荐阅读