天天看点

python中如何让图形出现在指定位置_使用Python在文档(.docx)中的特定位置添加图像?...

python中如何让图形出现在指定位置_使用Python在文档(.docx)中的特定位置添加图像?...

I use Python-docx to generate Microsoft Word document.The user want that when he write for eg: "Good Morning every body,This is my %(profile_img)s do you like it?"

in a HTML field, i create a word document and i recuper the picture of the user from the database and i replace the key word %(profile_img)s by the picture of the user NOT at the END OF THE DOCUMENT. With Python-docx we use this instruction to add a picture:

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

The picture is added to the document but the problem that it is added at the end of the document.

Is it impossible to add a picture in a specific position in a microsoft word document with python? I've not found any answers to this in the net but have seen people asking the same elsewhere with no solution.

Thanks (note: I'm not a hugely experiance programmer and other than this awkward part the rest of my code will very basic)

解决方案The Document.add_picture() method adds a specified picture to the end of the document in a paragraph of its own. However, by digging a little deeper into the API you can place text on either side of the picture in its paragraph, or both.

When we "dig a little deeper", we discover the Run.add_picture() API.

Here is an example of its use:

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