python docx 图片_python-docx图像的添加与删除

在Word软件中图片的添加可以通过“插入”菜单中的图片来添加,见下图;删除图像则只需选定图片然后点击DELETE键即可。而在python-docx包要使用add_picture()函数来添加图像,使用段落删除方法来删除图像。笔者将分图像的添加、图像的定位和图像的删除等3个部分来讲述python-docx包在WORD文档中图片的添加和删除。

WORD软件中添加图片的方式

01图像的添加

在python-docx包中添加图像主要使用add_picture()函数来实现。函数的完整形式为:add_picture(图像路径或者图像流,width=None,height=None),其中,width是图像的宽度,height是图像的高度,这两个参数可以不指定,也可以指定1个,本文只使用指定这种情况。add_picture()函数的主要有在文档末尾添加、任意段落添加和在表格里添加等三种使用情形。

文档末尾添加

使用document.add_picture()可以在文档的末尾新建一个段落,然后添加图像。以下代码演示了新建一个docx文档,新建3个段落并在文档末尾添加一个图像。

from docx import Document # 导入docx包document = Document() # 新建docx文档document.add_paragraph('111111111') # 添加第一个段落document.add_paragraph('2222222222') # 添加第二个段落document.add_paragraph('3333333333') # 添加第三个段落document.add_picture('111.jpg') # 文档末尾添加名称为111.jpg的图像document.save('test.docx') # 保存docx文档

文档末尾添加图像效果图

任意段落添加

run.add_picture()方法可以在文档中任意段落里添加图片。run对象是段落中的一个部分,所以在run中添加图像就是在段落里添加。这是添加图像的一般方法,document.add_picture()方法是run.add_picture()方法的特殊情况。要实现添加图像首先要获取段落,然后在段落中增加add_run()并获取run对象,然后使用run.add_picture()添加图像。例如,在上述生成的test.docx文档中的第二个段落里添加图像的代码如下:

document = Document('test.docx') # 读取test.docx文档run = document.paragraphs[1].add_run() # 获取run对象run.add_picture('222.jpg') # 添加名称为222.jpg的图像document.save('test1.docx') # 保存文档在第二个段落里添加图像的程序运行效果如下:

第二个段落里添加图像的效果图

在表格里添加图像

表格单元格里的内容是通过段落来添加的,所以在表格里添加图像从原理上来说和run.add_picture()方法是一致的。要经过了选定单元格,选择单元格里的段落,在段落里添加图像等三个步骤。以下代码演示了在表格中添加图像的方法:

table = document.add_table(2, 1) # 在文档中添加2行1列的表格table.cell(0, 0).paragraphs[0].add_run().add_picture('222.jpg') # 在表格(0,0)位置的单元格的第一个段落里添加图像表格添加图像的效果如下图:

表格里添加图像效果图

02的定位

图像添加后存储在WORD文档的inline_shapes里面,所以要定位图像,必须先确定对应的inline_shape。以下代码读取test1.dox文档中的第一个图像,并将图像宽度和高度都设置成4cm,代码如下:

from docx.shared import Pt, Cmdocument = Document('test1.docx')print('图形图像的数量:', len(document.inline_shapes))document.inline_shapes[0].height = Cm(4)document.inline_shapes[0].width = Cm(4)程序运行结果见下图

选定文档中图像的运行结果图

选定图像并设置的效果见下图

选定第1个图像的效果图

在上述文档中含有2个图像,通过获取文档中的inline_shapes对象,然后通过图像索引来获取图形图像对象。

03图像的删除

图像是通过run对象的add_picture()来添加的,而run对象是段落的一部分,所以通过删除段落可以删除图像。为此,test.docx文档中第1个图像在第4个段落里,删除这个段落代码如下:

paragraph = document.paragraphs[3] # 获取文档中的第四个段落对象print('删除前图形图像的数量:', len(document.inline_shapes)) # 删除前图片的数量paragraph.clear() # 删除段落print('删除洁后图形图像的数量:', len(document.inline_shapes)) # 删除后图片的数量删除段落的运行结果如下图

删除段落运行结果图

删除段落后图像的效果如下图

图像效果图

删除段落前图像数量是2,删除段落后变成了1,所以删除段落的同时里面的图像也被删除了。这种方式对于段落里只含有图像的情形很有效。如果既要删除图像又要保留段落里的其他内容,这种方式就无能为力。

本文的主要内容见下图

python-docx图像添加与删除

#python删除docx图像#

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值