46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
Created : 2017-09-09
|
|
|
|
@author: Eric Lapouyade
|
|
'''
|
|
|
|
from docxtpl import DocxTemplate
|
|
|
|
# rendering the "dynamic embedded docx":
|
|
embedded_docx_tpl = DocxTemplate('templates/embedded_embedded_docx_tpl.docx')
|
|
context = {
|
|
'name': 'John Doe',
|
|
}
|
|
embedded_docx_tpl.render(context)
|
|
embedded_docx_tpl.save('output/embedded_embedded_docx.docx')
|
|
|
|
|
|
# rendring the main document :
|
|
tpl = DocxTemplate('templates/embedded_main_tpl.docx')
|
|
|
|
context = {
|
|
'name': 'John Doe',
|
|
}
|
|
|
|
tpl.replace_embedded(
|
|
'templates/embedded_dummy.docx', 'templates/embedded_static_docx.docx'
|
|
)
|
|
tpl.replace_embedded(
|
|
'templates/embedded_dummy2.docx', 'output/embedded_embedded_docx.docx'
|
|
)
|
|
|
|
# The zipname is the one you can find when you open docx with WinZip, 7zip (Windows)
|
|
# or unzip -l (Linux). The zipname starts with "word/embeddings/".
|
|
# Note that the file is renamed by MSWord, so you have to guess a little bit...
|
|
tpl.replace_zipname(
|
|
'word/embeddings/Feuille_Microsoft_Office_Excel3.xlsx', 'templates/real_Excel.xlsx'
|
|
)
|
|
tpl.replace_zipname(
|
|
'word/embeddings/Pr_sentation_Microsoft_Office_PowerPoint4.pptx',
|
|
'templates/real_PowerPoint.pptx',
|
|
)
|
|
|
|
tpl.render(context)
|
|
tpl.save('output/embedded.docx')
|