2015-10-04 308 views
4

我使用Python-docx来生成Microsoft Word文档。用户希望当他为例如:“早安每个身体,这是我的%(profile_img)s你喜欢它吗? 在一个HTML字段中,我创建一个Word文档,并从数据库中恢复用户的图片,并将用户的图片替换为关键字%(profile_img)不在文档末尾。随着Python的DOCX我们使用这个指令添加图片:使用Python在文档(.docx)中的特定位置添加图像?

document.add_picture('profile_img.png', width=Inches(1.25)) 

图片被添加到文档中,但它在文档的末尾添加的问题。 使用python在Microsoft Word文档的特定位置添加图片是不可能的?我还没有在网络上找到任何答案,但看到有人在别处询问同样没有解决办法的答案。

谢谢(注:我不是比这个尴尬的部分我的代码的其余部分将很基本的一个巨大的experiance程序员等)

+0

如果您先将左边的部分文本添加到关键短语中,然后添加图像,然后添加文本的其余部分,该怎么办?你试过这个吗? – lenz

+0

你好楞次,是的,我已经尝试过,但结果是文本“早上好每个身体,这是我的”在第一行,“你喜欢它”在第二行和文件末尾的图片 –

回答

6

报价the python-docx documentation

的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') 
1

好了,我不知道这是否会适用于你,但这里是我做了什么在一个特定地点的设置图像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') 
+0

对于以厘米为单位的工作,只需将类Cm替换为类Cm即可! –

相关问题