问题描述
修改word中文本,如下代码,保存时会导致word中的部分图片消失

from docx import Document
path1 = 'test_in.docx'
path2 = 'test_out.docx'
file = docx.Document(path1)
for parg in file.paragraphs:
if parg.text:
parg.text = "test" + parg.text
file.save(path2)

解决方案
file.inlineshapes仅能找到内联图片,非内联图片找不到,
但通过file.paragraphs[n].runs[m].element.drawing_lst 则可返回块中的图形列表,包括内联图形和非内联图形。所以图片会存在paragraph.run内,如果直接修改paragraph.text会破坏paragraph结构,导致图片丢失。
所以解决方案就是修改下一级run中text而不动图片,如下:

from docx import Document
path1 = 'test_in.docx'
path2 = 'test_out.docx'
file = docx.Document(path1)
for parg in file.paragraphs:
runt = []
for run in parg.runs:
if run.text:
runt.appent(run.text)
runtext = ''
     parg.add_run('test***'+''.join(runt))
file.save(path2)

  

————————————————
版权声明:本文为CSDN博主「SUN_SU3」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013546508/article/details/88747317

最新文章

  1. 货运APP雨后春笋 传统物流模式将被改变
  2. 集​群​t​o​m​c​a​t​+​a​p​a​c​h​e​配​置​文​档
  3. excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution
  4. [JavaCore]JAVA中的泛型
  5. js获取select字段值的方法
  6. API读取和处理的文件
  7. openerp学习笔记 视图更新时删除已存在的菜单或其他对象
  8. c/c++中的各种字符串转换
  9. bitset使用
  10. UVA247- Calling Circles(有向图的强连通分量)
  11. Stream与byte转换
  12. 3xian退役贴【深思。】
  13. Struts2 + uploadify 多文件上传完整的例子!
  14. vue.js基础知识篇(3):计算属性、表单控件绑定
  15. 【算法】LeetCode算法题-Maximum Subarray
  16. activemq 控制面板里Number Of Pending Messages、 Messages Enqueued等含义解释
  17. 初级算法-6.两个数组的交集 II
  18. Hadoop -- ES -- CURD
  19. 歌曲播放页面的数据vuex管理
  20. PKU 1129 Channel Allocation(染色问题||搜索+剪枝)

热门文章

  1. 嵊州D2T4 十七个中毒的英国人 poisoning
  2. Android学习笔记(一)
  3. Mysql 出现许多问号的问题
  4. uniGUI之自定义JS事件动作ClientEvents(30)
  5. AC认证技术
  6. 分析器错误消息: Reference.svcmap:未能加载文件
  7. 题解【AcWing279】自然数拆分
  8. vuejs在解析时出现闪烁的原因及防止闪烁的方法
  9. springBoot 2.1.5 pom 文件 unknown 错误
  10. while与do while