python-docx对Word文档的指定位置(批量)插入图片
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文档的指定位置(批量)插入图片相关推荐
- java获取word固定位置的值_java 实现保存Word文档中指定位置的数据,又保存整篇文档...
1:需求 用户在线编辑完word 文档后希望保存整篇文档, 同时把保存文档中指定位置的数据 2:方案 用 pageoffice 实现既保存Word文档中指定位置的数据,又保存整篇文档 4:核心思想及 ...
- PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片
#PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片 代码示例 代码如下(示例): public function test(){//读取模板$templateProces ...
- python docx修改word文档格式
修改word文档格式,包括修改目录字体字号间距,修改一级标题字体字号间距,二级标题字体字号间距....正文字体字号间距,表格中的文字的字体字号间距,以图或表开头的图名称和表名称的字体字号间距. wor ...
- 记录使用Docx4j向word文档的指定位置插入图片遇到的坑
使用Docx4j向指定位置插入图片 pom.xml <dependency><groupId>org.docx4j</groupId><artifactId& ...
- 利用docx4j完美导出word文档(标签替换、插入图片、生成表格)
最近公司让我实现一个利用原有word模板,导出word文档的功能模块,发现docx4j是个很不错的工具,但是之前从来没有用过,对此并不了解,于是上网查找相关资料,也是非常少之,于是便自己开始摸索. 1 ...
- python 合并word文件_使用python docx合并word文档
合并包含所有样式的两个文档的另一种方法是使用python库docxcompose(https://pypi.org/project/docxcompose/).我们不需要明确定义样式,也不必逐段阅读文 ...
- python docx处理word文档中表格合并问题
问题描述 python中用docx库读取word文件,若word文件中包含合并的表格表格 则通过docx读取显示: file = docx.Document(path) for table in fi ...
- 用 Python 自动生成 Word 文档并在指定位置插入图片
用Python生成Word文档 在指定位置插入图片 首先当然需要第三方库啦(▽) 天才第一步,第三方的库O(∩_∩)O哈哈~ 参照转发的是这位大佬的博客:https://blog.csdn.net/c ...
- 使用 python 创建更改 word 文档
使用 python 修改 word 文档 说明:这个需求是老师想要一个自动识别 word 文档中指定位置的分数,并填入相应表格. 使用库 python-docx 的官方文档地址是:python-doc ...
最新文章
- JS 中 URL 编码的问题.
- weblogic创建域生产模式,输入用户名闪退
- php 验证微信token_微信token认证程序
- go语言中的方法method
- rem 前端字体_web前端入门到实战:一次搞懂CSS字体单位:px、em、rem和%
- sqlite3_exec
- EXCEL根据条件随机内插若干行及对应数据
- HoloLens 2开发:关闭性能分析窗口
- [转]NVIDIA/ATI显卡后缀命名大盘点
- Python云端系统开发入门 pycharm代码
- C语言输出大写金额,编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能...
- Unity 3D 射线检测方法
- 云计算中的Server Consolidation
- Comparator.comparing()比较排序(可以jdk8 Strim()结合) 可以通过这个比较排序
- Python 基于积分原理计算定积分并可视化数值积分计算的动画过程
- VSCode的常用快捷键
- 当你的才华撑不起你的野心的时候,你就应该努力
- Flutter性能优化实践 —— UI篇,头条android面试节奏
- 2021年衡水中学高考成绩查询,2019年衡水中学的高考成绩会怎样,看看往年的战绩就明白了...
- 学计算机的ctrl,学会这些电脑快捷键,瞬间成为电脑高手
热门文章
- 网站服务器垃圾清理,服务器安全狗垃圾清理功能操作教程
- web技术分享| AudioContext 实现音频可视化
- 研究量子计算机学什么,量子计算,量子信息技术,要学什么专业?
- 全球知名浏览器盘点,跨境电商的你知道吗?
- lumen5.5 使用 jwt-auth1.0 笔记
- android9 apk自动安装功能,如何在Android7.0、8.0、9.0系统下通过Intent安装apk
- 计算机休眠是打不开,电脑自动进入睡眠模式打不开是为什么
- 友盟第三方QQ登录分享
- 海岸TDM平台性能-续
- uniapp添加阿里字体图标库图标