我有有效的代码将图像插入DOCX模板(使用docxtpl提供的Jinja模板格式),但是当图像在插入文档主体时起作用时,图像无法在标题中呈现。文档{{p my_image}}
中的插入点显示消息“读取错误”。
我认为这是python-docx库中的错误/局限性,但我想知道是否存在已知的解决方法。我尝试了2种创建图像的方法,但是只有在标头中使用时,两种方法都失败,并显示相同的“读取错误”消息:
方法1:
sub_doc = self.template.new_subdoc()
p = sub_doc.add_paragraph()
r = p.add_run()
r.add_picture(output_path)
return sub_doc
方法2:
from docxtpl import InlineImage
return InlineImage(template, image_path, width, height)
答案 0 :(得分:1)
旧问题,但也许有人需要。
我通过使用docx模块将图像写入到DOCX文件的标题中。就我而言,我必须将图像写到表中。
from docx import Document
from docx.shared import Inches
header = doc.sections[0].header
#Insert table with 2 rows and 3 columns
headertable = header.add_table(2, 3, Inches(6))
headertable.style("borderColor:black")
a = headertable.cell(0, 0)
b = headertable.cell(1, 0)
A = a.merge(b)
#add table in header
headertab_cells = headertable.rows[0].cells
ht0 = headertab_cells[0].add_paragraph()
kh = ht0.add_run()
kh.add_picture('logo.jpg', width=Inches(1))