在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图像#

python docx 图片_python-docx图像的添加与删除相关推荐

  1. 仿淘宝中的评价晒单中选择图片可以预览,添加,删除

    前一篇文章写了如何把input="file"的默认样式改为自己想要的样式所以这篇是在这个的基础上写的,也就是说改变成了自己想要的样式之后,点击选择图片,可以放在一个div中预览,同 ...

  2. python开发图片_python实现图片上添加图片

    在介绍完给图上添加文字后,我们再介绍给图片上添加图片,也就是图片的叠加. 需要使用的Python的图像库:PIL.更加详细的知识点如下: Imaga模块:用来创建,打开,保存图片文件 new(path ...

  3. python颜色表_python docx设置表格单元格背景和文本颜色

    我正在使用python 2.7和docx,我想根据条件更改表格中单元格的背景和文本颜色.python docx设置表格单元格背景和文本颜色 我找不到任何关于单元格格式化的有用资源 有什么建议吗? 编辑 ...

  4. python控制台图片_Python实现图像信息隐藏

    Python实现图像信息隐藏 之前学习密码学的时候老师有提到过『信息隐藏』,现在用图像的方法尝试一下.思想是:把信息藏到RGB通道中的B通道,然后利用奇偶性可以恢复过来 原理 从源图中提取文字图像信息 ...

  5. python 缩放图片_python实现按长宽比缩放图片

    使用python按图片固定长宽比缩放图片到指定图片大小,空白部分填充为黑色. 代码 # -*- coding: utf-8 -*- from pil import image class image_ ...

  6. python显示图片_python 一个figure上显示多个图像的实例

    方法一:主要是inshow()函数的使用 首先基本的画图流程为: import matplotlib.pyplot as plt #创建新的figure fig = plt.figure() #必须通 ...

  7. python缩小图片_python如何缩小图像

    PIL是python的一个图像处理库,功能非常强大,可以实现图片的格式转换.旋转.裁剪.改变尺寸.像素处理.图片合并等等操作. PIL已经更名为pillow,所以在终端输入:pip3 install ...

  8. python浮雕图片_python图像数据增强——imgaug (二)

    在这章我们展示一个涵盖了大部分数据增强方法的例子.这里有大量的代码,可能会引起部分读者的不适,但是大家可以主要看注释,以及最后的总结性的话语,在实际上使用的时候再详细的看具体的实现,有一些.from ...

  9. python浮雕图片_Python bug只会出现在使用Numpy的浮雕图像上

    该程序的目的是拍摄ppm图像并对其进行浮雕. (整个项目的详细信息可以找到 here)我正在帮助分配任务,似乎无法找到学生的错误. 我使用的原始图像如下所示: 结果应如下所示: 这是整个程序(围绕问题 ...

最新文章

  1. Jackson 序列化对象成 JSON 字符串,忽略部分字段(属性)
  2. Java内存使用量测试 看看我们天天在用的JVM到底浪费了多少内存资源
  3. x3650m5不自动进系统_17日起,泉州这个地方自动抓拍系统启用!这些车闯红灯、严重超载、不按道行驶被查处曝光!【交通大整治】...
  4. PXE安装linux
  5. iOS之常用的方法和技巧
  6. IE6下position:absolute的定位BUG(转载)
  7. 弄懂bind,apply和call的区别
  8. macbook系统安装服务器,SVN-Mac安装服务器
  9. grootJsAPI文档
  10. contiki list 链表
  11. SharePoint 2013连接非默认端口的SQL Server
  12. 读取页面上所有的checkbox
  13. matlab多边形减面算法_matlab考前复习
  14. MATLAB 2016a 安装包以及安装破解教程
  15. firefox插件使用感受
  16. Line-in和Mic-in及Line-out的使用和介绍
  17. 彻底删除微软拼音输入法2003
  18. EDI电除盐纯水设备
  19. 芯片级维修学习课程安排
  20. IDES翻译—采购流程中的Enjoy界面

热门文章

  1. lamp整合三连发(3)
  2. wps数据匹配怎么做_wps表格中如何巧用Match函数进行快速匹配-百度经验
  3. 高层次人才需求旺盛!2022年中国大数据产业发展趋势
  4. 七牛云音视频文件并转码、添加水印官方示例
  5. 辽宁大学计算机测控技术专业排名,省级一流专业——辽宁大学测控技术与仪器专业...
  6. Python3爬虫(sqlite3存储信息)--AGE动漫网站排行榜
  7. 赚钱宝2代(飞碟形状)的主板TTL 串口使用
  8. 潜龙号开启水下机器人_蛟龙、海龙、潜龙傻傻分不清?全面解密国内最先进水下机器人...
  9. git拉取GitLab工程报错Repository not found
  10. 7-1 哈利·波特的考试