Add an image in a specific position in the document (.docx) with Python?
Question: 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)


Answer: Quoting [the python-docx documentation](https://python-
docx.readthedocs.org/en/latest/user/shapes.html):

> 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()`](https://python-
docx.readthedocs.org/en/latest/api/text.html#docx.text.run.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')
    

