具体生成word的代码就不粘贴了,下面只介绍图片居中的方法,因为docx库add_picture()方法不支持对图片位置的设置。所以有两种思路:
1、新建一个1行3列的表格,在中间的一列中插入图片
2、改变段落的位置(直接将最近的一个段落更改)
第一个方法:
def add_center_picture(self, image_path_or_stream, width=None, height=None):
# run = self.doc.add_paragraph().add_run()
tab = self.doc.add_table(rows=1, cols=3) # 添加一个1行3列的空表
cell = tab.cell(0, 1) # 获取某单元格对象(从0开始索引)
ph =cell.paragraphs[0]
run = ph.add_run()
# run.add_break()
run.add_picture(image_path_or_stream, width=width, height=height)
第二个方法:
def align_center(self):
last_paragraph = self.doc.paragraphs[-1]
last_paragraph.alignment = docx.enum.text.WD_ALIGN_PARAGRAPH.CENTER