python使用docx向word文档中表格插入图片并固定缩放

发布时间 2023-08-28 11:35:44作者: luogi

使用python的docx模块对word文档进行编辑时,有时候需要向表格中插入图片,但是插入的图片一般是按照原图片的大小插入的,即使你的word文档一开始就设置好了固定宽高,似乎也是不起作用,这个时候就需要在插入后,用python去调整图片的宽高。
示例代码:

from docx import Document
from docx import shared

# 本脚本用于测试word文件的表格写入

document = Document("0807.docx")

#插入图片
pic = document.tables[1].cell(2,2).paragraphs[0].add_run().add_picture("Output_1.png")
#获取原图片的宽度
source_width = pic.width
#设置图片插入后的固定宽度
pic.width = shared.Cm(10.71)
#按图片宽度的缩放比例配置图片的高度
pic.height = int(pic.height * (pic.width / source_width))

document.save("1.docx")

如代码所示,向word文档中的第二个表格的第3行第3列插入了一个图片。
然后获取当前图片的高度,将其宽度调整为固定的10.71cm,再然后通过计算宽度变化的比例,调整高度的变化。
最后将文档保存为一个新的docx文件即可。