@Diolorca

Как добавить много изображений в шаблон docx?

Здравствуйте!
Автоматизирую заполнение документы docx. Мне нужно вставить множество картинок в документ, причем их количество всегда разное.
Как вставить одно изображение по тегу в документе я знаю, но как вставить много - я не могу найти способ.
Вот так выглядит код вставки одного изображения:
from docxtpl import DocxTemplate,InlineImage
from docx.shared import Mm

 
tpl = DocxTemplate('1.docx')


data = { 'img': InlineImage(tpl, image_descriptor='1.jpg', width =Mm (20), height =Mm (10))
}

tpl.render(data)
tpl.save(data)


Пока что только на уме сделать так: определить количество картинок, расставить скриптом в документе теги, а потом по количеству тегов вставить картинки, но это какой-то долгий путь... Явно должен быть способ быстрее.
  • Вопрос задан
  • 387 просмотров
Решения вопроса 1
@Diolorca Автор вопроса
Решил проблему, все оказалось достаточно просто. Код следующий:

from docxtpl import DocxTemplate,InlineImage
import glob
from docx.shared import Mm

 
#берем документ 
doc = DocxTemplate('3.docx')
 
imageObjs = []
for fPath in glob.glob('1/*.jpg'):
    print(fPath)
    imgObj = InlineImage(doc, fPath, height =Mm (65))
    imageObjs.append(imgObj)
    
    
context = {
    "images": imageObjs


}

doc.render(context)
doc.save("context.docx")


При этом в docx вставляем:
{%- for item in images -%}
{{ item }}
{%- endfor -%}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы