Python script - insert image using mailmerge into docx file












0















I'm working on a python script which analyses excel file and based on than filling in docx files with multiple variables using mailmerge library. For string values all is working fine but I have a problems with inserting image into a file. As I have to choose from 7 images for now as a workaround I just created 7 templates and I'm choosing the correct template based on some conditions but in the near future I will have more combination of images inside docx file and then creating like 50 templates is not a good option.



On google i found out that images can be inserted into docx file with below structure:



{ INCLUDEPICTURE "{ MERGEFIELD 1.png * MERGEFORMAT }" * MERGEFORMAT }



but I cannot make it work for me. Is it possible to insert path of a image into it and then Word would use it to insert an image? something like that:



{ INCLUDEPICTURE "{ path_to_image * MERGEFORMAT }" * MERGEFORMAT }



from mailmerge import MailMerge
document = MailMerge(template.docx)
document.merge(path_to_image="C:\image.png")
document.write(document_name)


Thanks!










share|improve this question























  • Do you absolutely need to use mailmerge? I found this other package which seems to support adding pictures to documents: python-docx.readthedocs.io/en/latest

    – Pasa
    Jan 18 at 22:43











  • Thank you for your reply. Mailmerge is not a requirement so I was looking into Python-docx package but altough insertng images works fine it looks like that I cannot insert it in very specific position in an existing document. For python-docx I can add image at the bottom, in the New table etc but not in a template that already has many information inside - client mass communication in my scenario - at least I couldnt find how to use it that Way.

    – bgr88
    Jan 19 at 3:17


















0















I'm working on a python script which analyses excel file and based on than filling in docx files with multiple variables using mailmerge library. For string values all is working fine but I have a problems with inserting image into a file. As I have to choose from 7 images for now as a workaround I just created 7 templates and I'm choosing the correct template based on some conditions but in the near future I will have more combination of images inside docx file and then creating like 50 templates is not a good option.



On google i found out that images can be inserted into docx file with below structure:



{ INCLUDEPICTURE "{ MERGEFIELD 1.png * MERGEFORMAT }" * MERGEFORMAT }



but I cannot make it work for me. Is it possible to insert path of a image into it and then Word would use it to insert an image? something like that:



{ INCLUDEPICTURE "{ path_to_image * MERGEFORMAT }" * MERGEFORMAT }



from mailmerge import MailMerge
document = MailMerge(template.docx)
document.merge(path_to_image="C:\image.png")
document.write(document_name)


Thanks!










share|improve this question























  • Do you absolutely need to use mailmerge? I found this other package which seems to support adding pictures to documents: python-docx.readthedocs.io/en/latest

    – Pasa
    Jan 18 at 22:43











  • Thank you for your reply. Mailmerge is not a requirement so I was looking into Python-docx package but altough insertng images works fine it looks like that I cannot insert it in very specific position in an existing document. For python-docx I can add image at the bottom, in the New table etc but not in a template that already has many information inside - client mass communication in my scenario - at least I couldnt find how to use it that Way.

    – bgr88
    Jan 19 at 3:17
















0












0








0








I'm working on a python script which analyses excel file and based on than filling in docx files with multiple variables using mailmerge library. For string values all is working fine but I have a problems with inserting image into a file. As I have to choose from 7 images for now as a workaround I just created 7 templates and I'm choosing the correct template based on some conditions but in the near future I will have more combination of images inside docx file and then creating like 50 templates is not a good option.



On google i found out that images can be inserted into docx file with below structure:



{ INCLUDEPICTURE "{ MERGEFIELD 1.png * MERGEFORMAT }" * MERGEFORMAT }



but I cannot make it work for me. Is it possible to insert path of a image into it and then Word would use it to insert an image? something like that:



{ INCLUDEPICTURE "{ path_to_image * MERGEFORMAT }" * MERGEFORMAT }



from mailmerge import MailMerge
document = MailMerge(template.docx)
document.merge(path_to_image="C:\image.png")
document.write(document_name)


Thanks!










share|improve this question














I'm working on a python script which analyses excel file and based on than filling in docx files with multiple variables using mailmerge library. For string values all is working fine but I have a problems with inserting image into a file. As I have to choose from 7 images for now as a workaround I just created 7 templates and I'm choosing the correct template based on some conditions but in the near future I will have more combination of images inside docx file and then creating like 50 templates is not a good option.



On google i found out that images can be inserted into docx file with below structure:



{ INCLUDEPICTURE "{ MERGEFIELD 1.png * MERGEFORMAT }" * MERGEFORMAT }



but I cannot make it work for me. Is it possible to insert path of a image into it and then Word would use it to insert an image? something like that:



{ INCLUDEPICTURE "{ path_to_image * MERGEFORMAT }" * MERGEFORMAT }



from mailmerge import MailMerge
document = MailMerge(template.docx)
document.merge(path_to_image="C:\image.png")
document.write(document_name)


Thanks!







python image email merge mailmerge






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 18 at 19:57









bgr88bgr88

12




12













  • Do you absolutely need to use mailmerge? I found this other package which seems to support adding pictures to documents: python-docx.readthedocs.io/en/latest

    – Pasa
    Jan 18 at 22:43











  • Thank you for your reply. Mailmerge is not a requirement so I was looking into Python-docx package but altough insertng images works fine it looks like that I cannot insert it in very specific position in an existing document. For python-docx I can add image at the bottom, in the New table etc but not in a template that already has many information inside - client mass communication in my scenario - at least I couldnt find how to use it that Way.

    – bgr88
    Jan 19 at 3:17





















  • Do you absolutely need to use mailmerge? I found this other package which seems to support adding pictures to documents: python-docx.readthedocs.io/en/latest

    – Pasa
    Jan 18 at 22:43











  • Thank you for your reply. Mailmerge is not a requirement so I was looking into Python-docx package but altough insertng images works fine it looks like that I cannot insert it in very specific position in an existing document. For python-docx I can add image at the bottom, in the New table etc but not in a template that already has many information inside - client mass communication in my scenario - at least I couldnt find how to use it that Way.

    – bgr88
    Jan 19 at 3:17



















Do you absolutely need to use mailmerge? I found this other package which seems to support adding pictures to documents: python-docx.readthedocs.io/en/latest

– Pasa
Jan 18 at 22:43





Do you absolutely need to use mailmerge? I found this other package which seems to support adding pictures to documents: python-docx.readthedocs.io/en/latest

– Pasa
Jan 18 at 22:43













Thank you for your reply. Mailmerge is not a requirement so I was looking into Python-docx package but altough insertng images works fine it looks like that I cannot insert it in very specific position in an existing document. For python-docx I can add image at the bottom, in the New table etc but not in a template that already has many information inside - client mass communication in my scenario - at least I couldnt find how to use it that Way.

– bgr88
Jan 19 at 3:17







Thank you for your reply. Mailmerge is not a requirement so I was looking into Python-docx package but altough insertng images works fine it looks like that I cannot insert it in very specific position in an existing document. For python-docx I can add image at the bottom, in the New table etc but not in a template that already has many information inside - client mass communication in my scenario - at least I couldnt find how to use it that Way.

– bgr88
Jan 19 at 3:17














0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54260657%2fpython-script-insert-image-using-mailmerge-into-docx-file%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54260657%2fpython-script-insert-image-using-mailmerge-into-docx-file%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Liquibase includeAll doesn't find base path

How to use setInterval in EJS file?

Petrus Granier-Deferre