Search code examples
python-3.5doc

Python docx image rendering using docx template library


I am trying to render a image to a docx template which has a jinja hook in it.

I am using inlineImage method from docx template using this I was able to render image it is opening in libreoffice writer but not in msword where it should be really using.

In msword a image is rendered but not shown just a blank area is shown.

I do even tried using the subdoc method it is also giving me same results.

Please do help me understand what am doing wrong.

I am using python-docx 0.8.7 and docxtemplate 0.5.17 library to achieve the result

I am bound to use these versions since docxtemplate enforced to use this version of python-docx


Solution

  • I am posting this as an answer so that it may help others trying to achieve the same.

    In my code i was using NamedTemporaryFile(delete=None) to create the image before I pass the value to inlineimage as InlineImage(template, tmpfile.name) Which was causing the Issue , I remodelled my logic to directly add the image after doing some resize based on image aspect ratio and send the path of the image instead of filename into the InlineImage method and it worked like a charm.