一、插入图片
1、使用Document对象的add_paragraph()方法即可在文档中插入图片。
示例:
# 1、在文档中插入图片
from docx import Document
from docx.shared import Inches, Cm
document = Document()
document.add_picture('demo_pic.png', width=Inches(1.25), height=Inches(1.25))
document.add_picture('demo_pic.png', width=Cm(1.25), height=Cm(1.25))
document.save('demo_pic.docx')
效果:
插入图片时,可以指定图片的大小,常用的单位有Inches, Cm 等。
对于插入的图片,也可以指定图片的对齐方式,如靠左,靠右,居中。实现方式为使用段落的对齐。
2、在段落中插入图片
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Inches, Cm
document = Document()
document.add_picture('demo_pic.png', width=Inches(1.25), height=Inches(1.25))
# 2、在段落中插入图片
paragraph2 = document.add_paragraph('插入一个段落')
pic2 = paragraph2.add_run().add_picture('demo_pic.png', width=Cm(1.25), height=Cm(1.25))
paragraph2.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 居中对齐
document.save('demo_pic.docx')
二、删除图片
python-docx中没有提供删除图片的方法,可以使用paragraph.clear()或run.clear()方法,清除段落或文本块的内容,达到删除图片的效果。
三、常见问题
1、插入时报错,图片格式不正确
报错信息:
docx.image.exceptions.UnrecognizedImageError
处理办法:把图像文件转成.jpg格式
1、安装pillow
pip install pillow
2、转换图片格式
from PIL import Image
source_image_path = r'D:\test.png'
target_image_path = r'D:\test.jpg'
Image.open(source_image_path).convert('RGB').save(target_image_path)
安装pillow时可能会报错:
ERROR: Failed building wheel for pillow
Failed to build pilloe
ERROR: Could not build wheels for pillow, which is required to install pyproject.toml-based projects
解决办法:不执行 pip install pillow,执行以下命令:
pip install --only-binary Pillow Pillow