【Python】只需2行代码,轻松将PDF转换成Word(含示范案例)
文章目录
- 一、前期准备
- 二、pdf2docx功能
- 三、限制
- 四、案例
一、前期准备
可将 PDF 转换成 docx 文件的 Python 库。该项目通过 PyMuPDF
库提取 PDF 文件中的数据,然后采用 python-docx
库解析内容的布局、段落、图片、表格等,最后自动生成 docx 文件。
第一步,下载 PyMuPDF
包:
pip install PyMuPDF
第二步,下载 python-docx
包:
pip install python-docx
第三步,下载 pdf2docx
包:
pip install pdf2docx
二、pdf2docx功能
- 解析和创建页面布局
(1)页边距
(2)章节和分栏 (目前最多支持两栏布局)
(3)页眉和页脚 [TODO]
- 解析和创建段落
(1)OCR 文本 [TODO]
(2)水平(从左到右)或竖直(自底向上)方向文本
(3)字体样式例如字体、字号、粗/斜体、颜色
(4)文本样式例如高亮、下划线和删除线
(5)列表样式 [TODO]
(6)外部超链接
(7)段落水平对齐方式 (左/右/居中/分散对齐)及前后间距
- 解析和创建图片
(1)内联图片
(2)灰度/RGB/CMYK等颜色空间图片
(3)带有透明通道图片
(4)浮动图片(衬于文字下方)
- 解析和创建表格
(1)边框样式例如宽度和颜色
(2)单元格背景色
(3)合并单元格
(4)单元格垂直文本
(5)隐藏部分边框线的表格
(6)嵌套表格
- 支持多进程转换
pdf2docx
同时解析出了表格内容和样式,因此也可以作为一个表格内容提取工具。
三、限制
- 目前暂不支持扫描PDF文字识别
- 仅支持从左向右书写的语言(因此不支持阿拉伯语)
- 不支持旋转的文字
- 基于规则的解析无法保证100%还原PDF样式
四、案例
我们有这样一篇PDF:
代码如下:
from pdf2docx import parse
pdf_file = './ResNet.pdf'
docx_file = './resnet.docx'
# convert pdf to docx
parse(pdf_file, docx_file)
输出结果为:
效果还可以,不过会缺失一部分数据!
【Python】只需2行代码,轻松将PDF转换成Word(含示范案例)相关推荐
- python如何使用最简单的方式将PDF转换成Word?
由于PDF的文件大多都是只读文件,有时候为了满足可以编辑的需要通常可以将PDF文件直接转换成Word文件进行操作. 看了网络上面的python转换PDF文件为Word的相关文章感觉都比较复杂,并且关于 ...
- 【Python】只需2行代码,轻松将PDF转换成Word
编辑:数据分析与统计学之美 可将 PDF 转换成 docx 文件的 Python 库.该项目通过 PyMuPDF 库提取 PDF 文件中的数据,然后采用 python-docx 库解析内容的布局.段落 ...
- 利用Python只需3行代码即可生成验证码
现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 ... 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 很多人学 ...
- 批量下载网页图片,python只需23行代码
我们在浏览网页的时候偶尔会遇到很多美图,想要保存下来.如果是一张张地"右键,图片另存为...",就显得太low了,而且工作量大.效率低. 我们以豆瓣网首页为例,教大家如何批量获取网 ...
- android 蓝牙耗电量,安卓Android BLE低功耗蓝牙接受数据详解 只需100行代码轻松搞定...
做了一个安卓手机通过蓝牙获取电子秤的重量的Demo,在此写下以供大家参考和讨论. 先上代码,着急用的可以迅速参考,后面再写说明 我跳过了扫描过程,直接根据蓝牙设备地址进行连接,可以运行官方Demo来获 ...
- 用python写代码,把PDF转换成word
可以使用 Python 的库 "PyPDF2" 来将 PDF 转换为 Word. 安装 PyPDF2: pipinstall pypdf2 然后,可以使用以下代码将 PDF 转换为 ...
- 【高代码文件格式API】道宁为您提供文件格式API集——Aspose,只需几行代码即可创建转换和操作100多种文件格式
Aspose系列产品是 高代码文件格式API 使您的应用程序能够处理 适用于所有主要平台的 Word.Excel.PDF.PowerPoint.Outlook 和100多种其他文件格式 Aspose提 ...
- JavaScript开发区块链只需200行代码
JavaScript开发区块链只需200行代码 用JavaScript开发实现一个简单区块链.通过这一开发过程,你将理解区块链技术是什么:区块链就是一个分布式数据库,存储结构是一个不断增长的链表,链表 ...
- lstm代码_只需5行代码!LSTM时间序列建模以及预测
最近我在github上看到一个项目,项目内容是将深度学习方法(LSTM.RNN.GRU)进行时间序列建模的过程进行了封装,使得调用者调用者只需5行代码能完成时间序列建模以及预测的全过程. 项目本身是使 ...
最新文章
- 比较零知识证明算法zkSNARK,zkSTARKs,zkBoo,Sonic,BulletProofs
- 计算机软件的输出设备有哪些,计算机输出设备有哪些?计算机输出设备介绍
- 计算机中丢失 MSVCR100.dll
- php完全手册下载_PHP: 序言 - Manual
- java二重循环计数_java的二重循环代码样例
- 【Python】斐波那契数列
- 带你详细了解机器视觉竞赛—ILSVRC竞赛
- 60-10-060-命令-kafka-run-class.sh
- ICP算法(Iterative Closest Point迭代最近点算法)
- 四、docker-compose的编程模版
- 计算机应用基础知识竞赛题,计算机基础知识题库
- 通俗易懂的Matlab线性规划求解详解
- SQLite3之事务机制详解
- [CSP-S模拟测试]:赤壁情(DP)
- 手工焊接电路板经验总结
- java源码分析-注解AnnotatedElement接口
- 部署ServletContext的时候报错 Class com.xxxxx.ContextServlet is not a Servlet
- 手机连无线显示服务器超时,手机登录melogin.cn连接超时解决步骤
- c语言pl是什么意思,【问答】求助!PL-L PL-S PL-C PL-后面的字母什么意思? - 邦阅网-发现真实的外贸服务商...
- 论文领读|基于 VQVAE 的长文本生成
热门文章
- 一次软件测试的电话面试分享
- python 0 100被7整除_python: 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符串格式化方法美化输出格式。...
- 未来人类殡葬一览:太空中正飘着上千个骨灰盒
- HTML创建表格及合并单元格
- STM32cubeHAL ADC+TIM+DMA (二)
- JFinal+Quartz动态任务调度控制台
- web开发中常用的几种统计图使用
- tp路由器桥接成功无法上网怎么办
- 加强生物保护 绿日同学公益组织“国际生物多样性日“宣传活动
- 短视频剪辑的三大要点教程,适合刚入门的小白