文章目录

  • 一、前期准备
  • 二、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(含示范案例)相关推荐

  1. python如何使用最简单的方式将PDF转换成Word?

    由于PDF的文件大多都是只读文件,有时候为了满足可以编辑的需要通常可以将PDF文件直接转换成Word文件进行操作. 看了网络上面的python转换PDF文件为Word的相关文章感觉都比较复杂,并且关于 ...

  2. 【Python】只需2行代码,轻松将PDF转换成Word

    编辑:数据分析与统计学之美 可将 PDF 转换成 docx 文件的 Python 库.该项目通过 PyMuPDF 库提取 PDF 文件中的数据,然后采用 python-docx 库解析内容的布局.段落 ...

  3. 利用Python只需3行代码即可生成验证码

    现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 ... 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 很多人学 ...

  4. 批量下载网页图片,python只需23行代码

    我们在浏览网页的时候偶尔会遇到很多美图,想要保存下来.如果是一张张地"右键,图片另存为...",就显得太low了,而且工作量大.效率低. 我们以豆瓣网首页为例,教大家如何批量获取网 ...

  5. android 蓝牙耗电量,安卓Android BLE低功耗蓝牙接受数据详解 只需100行代码轻松搞定...

    做了一个安卓手机通过蓝牙获取电子秤的重量的Demo,在此写下以供大家参考和讨论. 先上代码,着急用的可以迅速参考,后面再写说明 我跳过了扫描过程,直接根据蓝牙设备地址进行连接,可以运行官方Demo来获 ...

  6. 用python写代码,把PDF转换成word

    可以使用 Python 的库 "PyPDF2" 来将 PDF 转换为 Word. 安装 PyPDF2: pipinstall pypdf2 然后,可以使用以下代码将 PDF 转换为 ...

  7. 【高代码文件格式API】道宁为您提供文件格式API集——Aspose,只需几行代码即可创建转换和操作100多种文件格式

    Aspose系列产品是 高代码文件格式API 使您的应用程序能够处理 适用于所有主要平台的 Word.Excel.PDF.PowerPoint.Outlook 和100多种其他文件格式 Aspose提 ...

  8. JavaScript开发区块链只需200行代码

    JavaScript开发区块链只需200行代码 用JavaScript开发实现一个简单区块链.通过这一开发过程,你将理解区块链技术是什么:区块链就是一个分布式数据库,存储结构是一个不断增长的链表,链表 ...

  9. lstm代码_只需5行代码!LSTM时间序列建模以及预测

    最近我在github上看到一个项目,项目内容是将深度学习方法(LSTM.RNN.GRU)进行时间序列建模的过程进行了封装,使得调用者调用者只需5行代码能完成时间序列建模以及预测的全过程. 项目本身是使 ...

最新文章

  1. 【WPF】鼠标拖拽功能DragOver和Drop
  2. mybatis-plus入坑指南
  3. mysql decode语句_mysql数据灾难恢复方案
  4. python三元运算符怎么使用_Python的三元运算符使用方法
  5. 210228Linux 条件变量 线程池
  6. 微信开发 网页授权获取用户基本信息
  7. 窗口类的注册生成和消息循环
  8. mysql 基础视图_MySQL基础(4) | 视图
  9. Python数据预处理数据的方法总结(使用sklearn-preprocessing)
  10. 真降价还是假环保?华为客服回应手机取消充电器:不清楚
  11. Linux系统和windows系统mysql5.7.32的下载
  12. 一款基于 Spring Boot 的公众号管理系统,已开源,别再自己写了!
  13. Win10系统下激活系统和office2013教程
  14. 下载IEEE期刊Latex模板步骤
  15. 家用宽带搭建个人服务器(二)
  16. PE实战教程之扩大节
  17. node 项目打包工具ncc
  18. python认证证书有哪些-国家认证的Python技术工程师有什么能力要求?
  19. [C#]关于接口Interface的场景假设-代码模拟-引喻类比-知识快照等-B
  20. python发送邮件 SMTP socks代理

热门文章

  1. 教你一键开发桌面应用程序
  2. 花了500学的seo课程教程笔记公布
  3. app小游戏需实名防沉迷
  4. CATIA CAA二次开发专题(十)---迷宫中穿行(终结篇)
  5. RocketMQ:两种消费方式:pull拉、push推
  6. 必学技术java Swing之随心所欲添加自定义位置和大小的组件(建议收藏)
  7. Excel自动转曲线图的时PHP,Excel折线图随着数据的插入动态变化,掌握此技能的人不足1﹪!...
  8. Angular入门-Hero Editor抽丝
  9. 拷贝和引用有什么区别php,php引用和拷贝的区别知识点总结
  10. 微信手环1年多了,前主管终于出来聊了聊它是怎么诞生的