使用Python在文档(.docx)中的特定位置添加图像?

Kai*_*ili 12 python image python-2.7 python-docx

我使用Python-docx来生成Microsoft Word文档.用户在写作时想要这样:例如:"早上好每个人,这是我的%(profile_img)你喜欢吗?" 在HTML字段中,我创建一个word文档,我从数据库中恢复用户的图片,然后用用户图片替换关键字%(profile_img)s,而不是在文档的末尾.使用Python-docx,我们使用此指令添加图片:

document.add_picture('profile_img.png', width=Inches(1.25))
Run Code Online (Sandbox Code Playgroud)

图片已添加到文档中,但问题是它在文档末尾添加.使用python在microsoft word文档中的特定位置添加图片是不可能的?我没有在网上找到任何答案,但已经看到人们在其他地方要求相同的解决方案.

谢谢(注意:我不是一个非常体验的程序员,除了这个尴尬的部分,我的其余代码将非常基本)

Rob*_*obᵩ 13

引用python-docx文档:

Document.add_picture()方法将指定的图片添加到文档末尾的段落中.但是,通过深入挖掘API,您可以将文本放在图片的两侧或两者中.

当我们"深入挖掘"时,我们会发现Run.add_picture()API.

以下是其使用示例:

from docx import Document
from docx.shared import Inches

document = Document()

p = document.add_paragraph()
r = p.add_run()
r.add_text('Good Morning every body,This is my ')
r.add_picture('/tmp/foo.jpg')
r.add_text(' do you like it?')

document.save('demo.docx')
Run Code Online (Sandbox Code Playgroud)


小智 10

好吧,我不知道这是否适用于你,但这是我在特定地点为docx文档设置图像所做的工作:我创建了一个基础docx文档(模板文档).在这个文件中,我插入了一些没有边框的表,用作图像的占位符.创建文档时,首先打开模板,然后更新在表格内创建图像的文件.因此代码本身与原始代码没有太大区别,唯一的区别是我在特定表中创建了段落和图像.

from docx import Document
from docx.shared import Inches

doc = Document('addImage.docx')
tables = doc.tables
p = tables[0].rows[0].cells[0].add_paragraph()
r = p.add_run()
r.add_picture('resized.png',width=Inches(4.0), height=Inches(.7))
p = tables[1].rows[0].cells[0].add_paragraph()
r = p.add_run()
r.add_picture('teste.png',width=Inches(4.0), height=Inches(.7))
doc.save('addImage.docx')
Run Code Online (Sandbox Code Playgroud)