docxtpl -在Word中打开文档时添加超过五张图片时出现错误



我试图在Word中自动生成一些报告,当我在Word中打开创建的文档时,我得到以下错误:

"Word在测试中发现不可读的内容。您要恢复此文档的内容吗?如果您信任此文档的来源,请单击是。">

点击yes后,提示文件无法打开。当我在Libre Office中打开时,没有问题(我在Ubuntu/Python 3.8.5上运行脚本)

下面是我的代码的简化版本:

from docxtpl import DocxTemplate, InlineImage
from docx.shared import Mm
doc = DocxTemplate("template_test.docx")
""" load up images """
mps_chart = InlineImage(doc, image_descriptor='test/mps_line_chart.png')
server_pie = InlineImage(doc, image_descriptor='test/server_availability_pie.png', width=Mm(76), height=Mm(58))
agent_pie = InlineImage(doc, image_descriptor='test/agent_availability_pie.png', width=Mm(76), height=Mm(58))
cases_chart = InlineImage(doc, image_descriptor='test/cases_bar_chart.png')
alarms_chart = InlineImage(doc, image_descriptor='test/alarms_line_chart.png')
intro_alarms_graphic = InlineImage(doc, image_descriptor='test/alarms_intro_graphic.png', width=Mm(38), height=Mm(38))
intro_cases_graphic = InlineImage(doc, image_descriptor='test/open cases_intro_graphic.png', width=Mm(38), height=Mm(38))
intro_mps_graphic = InlineImage(doc, image_descriptor='test/mps_intro_graphic.png', width=Mm(38), height=Mm(38))
intro_doc_graphic = InlineImage(doc, image_descriptor='test/doc_intro_graphic.png', width=Mm(38), height=Mm(38))
months = {"MONTH_1": "June", "MONTH_2": "May", "MONTH_3": "April"}
intro_images = {"intro_alarms": intro_alarms_graphic, "intro_cases": intro_cases_graphic, "intro_mps": intro_mps_graphic, "intro_doc": intro_doc_graphic}
images = {"mps_line_chart": mps_chart, "agent_pie_chart": agent_pie, "server_pie_chart": server_pie , "alarms_line_chart": alarms_chart, "cases_bar_chart": cases_chart}
context = {**images, **months, **intro_images}
doc.render(context)
doc.save("test.docx")

以下将工作良好,我只得到错误时,超过5个图像添加:

intro_images = {"intro_alarms": intro_alarms_graphic}
images = {"mps_line_chart": mps_chart, "agent_pie_chart": agent_pie, "server_pie_chart": server_pie , "alarms_line_chart": alarms_chart}

当我将所有图像包含在单个字典中时,或者如果我这样做,我仍然有同样的问题:

context = {"mps_line_chart": mps_chart, "agent_pie_chart": agent_pie, "server_pie_chart": server_pie , "alarms_line_chart": alarms_chart, "cases_bar_chart": cases_chart, "intro_alarms": intro_alarms_graphic, "intro_cases": intro_cases_graphic, "intro_mps": intro_mps_graphic, "intro_doc": intro_doc_graphic}

似乎Word文档在Libre Office中打开并再次保存后会出现问题。我在Word中打开模板并保存,这似乎解决了问题。

最新更新