python docx 插入图片
时间: 2023-09-21 10:04:49 浏览: 99
在-docx中插入图片有多种方法。一种方法是通过使用Document对象的add_picture()方法直接插入图片,只需要传入图片的路径或者字节流即可。例如:
```
from docx import Document
doc = Document()
doc.add_paragraph("在下面插入一张图片")
doc.add_picture("./01.png")
doc.save('./test.docx')
```
另一种方法是通过part对象的related_parts()方法获取图片id,然后根据id获取对应的图片,并保存到本地。这个方法需要使用解压软件解压Word文档得到xml文件。下面是一个示例代码:
```
from os.path import basename
from docx import Document, ImagePart
doc = Document("./test.docx")
for p in doc.paragraphs:
images = p._element.xpath('.//pic:pic') # 获取所有图片
for image in images:
for img_id in image.xpath('.//a:blip/@r:embed'): # 获取图片id
part = doc.part.related_parts # 根据图片id获取对应的图片
if isinstance(part, ImagePart): # 保存图片
with open(basename(part.partname), "wb") as f:
f.write(part.blob)
```
还有一种方法是通过使用add_picture()方法直接在文档中添加图片。例如:
```
from docx import Document
from docx.shared import Inches, Cm
document = Document()
document.add_heading('大标题', 0)
p = document.add_paragraph("下面插入图片:")
document.add_picture('test_pic.png', width=Inches(4.25)) # 设置图片宽度,inches(英尺)与cm(厘米)两种
document.add_picture('test_pic.png', width=Cm(4.25))
document.save('测试_图片.docx')
```
这些方法可以根据你的需求选择合适的方式来插入图片。
阅读全文