python-docx对Word文档的指定位置(批量)插入图片

任务

实现自动化办公,对请假条.docx文件实现自动插入请假人签名图片。

技术方案

1.python-docx

python-docx是一个用于创建和更新 Microsoft Word (.docx) 文件的 Python 库。

2.Java Poi-tl

poi-tl(poi template language)是Word模板引擎,基于Microsoft Word模板和数据生成新的文档

在经过互联网一番搜索资源后,结合实用性,最终选择了***python-docx***来实现我们的任务。

实验

1.获取需要插入的位置

​ 首先我们需要分析一下Word文件。Word文件由两种类型组成,doc或docx。doc是Word 2007之前的版本,docx则是Word 2007及之后的版本。***python-docx***仅支持对docx文件的处理。

​ 如任务中需要添加请假人的手写签名。我们需要获取请假人的位置并在其后添加。在 python-docx 的官方文档我们可以找到如下提供为段落的方法。红框中所圈表示add_run()方法提供了在当前段落后追加操作。此时我们得

到的信息是可以通过段落对象来操作Word文档。还需要的信息是请假人位于哪个段落。文档中的段落与我们视觉上看到段落是有差别的,例如文档中的段落包含回车,每一个回车可能也算一个段落。这样我们就需要分析docx文件的构成了。

​ 早期的Word文件采用二进制存储文件形成后缀名为doc的文件。docx文件采用xml方式记录信息,由众多xml文件合成。将请假条.docx修改其后缀名为**.zip得到请假条.zip**文件。其构成如下图所示:

​ 展开word文件夹,红色方框所圈即document.xml记录文档的构成信息。将document.xml使用浏览器打开,并展开段落节点,得到如下所示:

p开头表示段落(paragraph),共有7个方框表示请假人字段位于第7个段落。

2.编写python代码
from docx import Documentdocument = Document(r"请假条.docx")
run = document.paragraphs[6].add_run()
run.add_picture(r'monty-truth.png')document.save(r"请假条.docx")

3.实现效果

工具

PyCharm社区版 编译器

Anaconda 构建运行的虚拟环境

python-docx 库函数

扩展

1.本博客采用技术为无标记添加照片信息,适用于已完成的文档替换或追加信息。

2.批量处理仅需遍历文件夹即可。

3.对doc文件的处理,可将doc文件通过pywin32库转换成docx文件再进行处理。

python-docx对Word文档的指定位置(批量)插入图片相关推荐

  1. java获取word固定位置的值_java 实现保存Word文档中指定位置的数据,又保存整篇文档...

    1:需求 用户在线编辑完word 文档后希望保存整篇文档, 同时把保存文档中指定位置的数据 2:方案 用 pageoffice  实现既保存Word文档中指定位置的数据,又保存整篇文档 4:核心思想及 ...

  2. PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片

    #PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片 代码示例 代码如下(示例): public function test(){//读取模板$templateProces ...

  3. python docx修改word文档格式

    修改word文档格式,包括修改目录字体字号间距,修改一级标题字体字号间距,二级标题字体字号间距....正文字体字号间距,表格中的文字的字体字号间距,以图或表开头的图名称和表名称的字体字号间距. wor ...

  4. 记录使用Docx4j向word文档的指定位置插入图片遇到的坑

    使用Docx4j向指定位置插入图片 pom.xml <dependency><groupId>org.docx4j</groupId><artifactId& ...

  5. 利用docx4j完美导出word文档(标签替换、插入图片、生成表格)

    最近公司让我实现一个利用原有word模板,导出word文档的功能模块,发现docx4j是个很不错的工具,但是之前从来没有用过,对此并不了解,于是上网查找相关资料,也是非常少之,于是便自己开始摸索. 1 ...

  6. python 合并word文件_使用python docx合并word文档

    合并包含所有样式的两个文档的另一种方法是使用python库docxcompose(https://pypi.org/project/docxcompose/).我们不需要明确定义样式,也不必逐段阅读文 ...

  7. python docx处理word文档中表格合并问题

    问题描述 python中用docx库读取word文件,若word文件中包含合并的表格表格 则通过docx读取显示: file = docx.Document(path) for table in fi ...

  8. 用 Python 自动生成 Word 文档并在指定位置插入图片

    用Python生成Word文档 在指定位置插入图片 首先当然需要第三方库啦(▽) 天才第一步,第三方的库O(∩_∩)O哈哈~ 参照转发的是这位大佬的博客:https://blog.csdn.net/c ...

  9. 使用 python 创建更改 word 文档

    使用 python 修改 word 文档 说明:这个需求是老师想要一个自动识别 word 文档中指定位置的分数,并填入相应表格. 使用库 python-docx 的官方文档地址是:python-doc ...

最新文章

  1. JS 中 URL 编码的问题.
  2. weblogic创建域生产模式,输入用户名闪退
  3. php 验证微信token_微信token认证程序
  4. go语言中的方法method
  5. rem 前端字体_web前端入门到实战:一次搞懂CSS字体单位:px、em、rem和%
  6. sqlite3_exec
  7. EXCEL根据条件随机内插若干行及对应数据
  8. HoloLens 2开发:关闭性能分析窗口
  9. [转]NVIDIA/ATI显卡后缀命名大盘点
  10. Python云端系统开发入门 pycharm代码
  11. C语言输出大写金额,编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能...
  12. Unity 3D 射线检测方法
  13. 云计算中的Server Consolidation
  14. Comparator.comparing()比较排序(可以jdk8 Strim()结合) 可以通过这个比较排序
  15. Python 基于积分原理计算定积分并可视化数值积分计算的动画过程
  16. VSCode的常用快捷键
  17. 当你的才华撑不起你的野心的时候,你就应该努力
  18. Flutter性能优化实践 —— UI篇,头条android面试节奏
  19. 2021年衡水中学高考成绩查询,2019年衡水中学的高考成绩会怎样,看看往年的战绩就明白了...
  20. 学计算机的ctrl,学会这些电脑快捷键,瞬间成为电脑高手

热门文章

  1. 网站服务器垃圾清理,服务器安全狗垃圾清理功能操作教程
  2. web技术分享| AudioContext 实现音频可视化
  3. 研究量子计算机学什么,量子计算,量子信息技术,要学什么专业?
  4. 全球知名浏览器盘点,跨境电商的你知道吗?
  5. lumen5.5 使用 jwt-auth1.0 笔记
  6. android9 apk自动安装功能,如何在Android7.0、8.0、9.0系统下通过Intent安装apk
  7. 计算机休眠是打不开,电脑自动进入睡眠模式打不开是为什么
  8. 友盟第三方QQ登录分享
  9. 海岸TDM平台性能-续
  10. uniapp添加阿里字体图标库图标