【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行代码能完成时间序列建模以及预测的全过程. 项目本身是使 ...
最新文章
- 【WPF】鼠标拖拽功能DragOver和Drop
- mybatis-plus入坑指南
- mysql decode语句_mysql数据灾难恢复方案
- python三元运算符怎么使用_Python的三元运算符使用方法
- 210228Linux 条件变量 线程池
- 微信开发 网页授权获取用户基本信息
- 窗口类的注册生成和消息循环
- mysql 基础视图_MySQL基础(4) | 视图
- Python数据预处理数据的方法总结(使用sklearn-preprocessing)
- 真降价还是假环保?华为客服回应手机取消充电器:不清楚
- Linux系统和windows系统mysql5.7.32的下载
- 一款基于 Spring Boot 的公众号管理系统,已开源,别再自己写了!
- Win10系统下激活系统和office2013教程
- 下载IEEE期刊Latex模板步骤
- 家用宽带搭建个人服务器(二)
- PE实战教程之扩大节
- node 项目打包工具ncc
- python认证证书有哪些-国家认证的Python技术工程师有什么能力要求?
- [C#]关于接口Interface的场景假设-代码模拟-引喻类比-知识快照等-B
- python发送邮件 SMTP socks代理
热门文章
- 教你一键开发桌面应用程序
- 花了500学的seo课程教程笔记公布
- app小游戏需实名防沉迷
- CATIA CAA二次开发专题(十)---迷宫中穿行(终结篇)
- RocketMQ:两种消费方式:pull拉、push推
- 必学技术java Swing之随心所欲添加自定义位置和大小的组件(建议收藏)
- Excel自动转曲线图的时PHP,Excel折线图随着数据的插入动态变化,掌握此技能的人不足1﹪!...
- Angular入门-Hero Editor抽丝
- 拷贝和引用有什么区别php,php引用和拷贝的区别知识点总结
- 微信手环1年多了,前主管终于出来聊了聊它是怎么诞生的