插入图片

文件.add_picture(图片地址, width = 宽度, height = 高度)

在word文档中插入图片,并设置大小

from docx.shared import Cm
from docx import Document
文件 = Document('c:/test.docx')
# 文件.add_picture('c:/pic01.jpg')
文件.add_picture('c:/pic01.jpg', width = Cm(13), height = Cm(8)) # Cm是厘米
文件.save('c:/test.docx')

在指定表的单元格中插入图片

from docx.shared import Cm
from docx import Document
文件 = Document('c:/test.docx')
run = 文件.tables[0].cell(0,0).paragraphs[0].add_run()
# run.add_picture('c:/pic01.jpg')
run.add_picture('c:/pic01.jpg', width = Cm(5), height = Cm(3)) # Cm是厘米
文件.save('c:/test.docx')

按照比例设置图片

Shape 对象代表文档中的图形对象,InlineShape 代表文档中的嵌入式图形对象。

按照固定比例设置图像大小

from docx import Document
文件 = Document('c:/test.docx')
图片 = 文件.paragraphs[1].add_run().add_picture('c:/pic01.jpg') # 在文档第2个段落里添加图片
图片.height = int(文件.inline_shapes[0].height * 0.80) # 按照50%比例设置图片高度
图片.width = int(文件.inline_shapes[0].width * 0.80) # 按照50%比例设置图片宽度
文件.save('c:/test.docx')

按照锁定比例设置图像大小

from docx.shared import Cm
from docx import Document
文件 = Document('c:/test.docx')
图片 = 文件.paragraphs[1].add_run().add_picture('c:/pic01.jpg') # 在文档第2个段落里添加图片
高度 = 图片.height # 读取图片原始大小高度
图片.height = Cm(5) # 设置图片高度为5cm
比例 = 图片.height / 高度 # 计算图片比例,新设定的高度除以原始高度
图片.width = int(文件.inline_shapes[0].width * 比例) # 按照比例设置图片宽度
文件.save('c:/test.docx')

设置图片的对齐方式

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入段落对齐包
from docx import Document
文件 = Document('c:/test.docx')
图片 = 文件.paragraphs[1].add_run().add_picture('c:/pic01.jpg') # 在文档第2个段落里添加图片
文件.paragraphs[1].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置文档中的第2个段落居中
文件.save('c:/test.docx')
对齐方式 说明
WD_PARAGRAPH_ALIGNMENT.LEFT 左对齐
WD_PARAGRAPH_ALIGNMENT.CENTER 居中对齐
WD_PARAGRAPH_ALIGNMENT.RIGHT 右对齐
WD_PARAGRAPH_ALIGNMENT.JUSTIFY 两端对齐
WD_PARAGRAPH_ALIGNMENT.DISTRIBUTE 分散对齐

图片的定位与删除

from docx import Document
文件 = Document('c:/test.docx')
段落 = 文件.paragraphs[1]    # 获取文档中的第2个段落对象
print('删除前图形图像的数量:', len(文件.inline_shapes)) # 删除前图片的数量
段落.clear() # 删除段落
print('删除后图形图像的数量:', len(文件.inline_shapes)) # 删除后图片的数量
文件.save('c:/test.docx')