文章目录

  • 一、前期准备
  • 二、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. 比较零知识证明算法zkSNARK,zkSTARKs,zkBoo,Sonic,BulletProofs
  2. 计算机软件的输出设备有哪些,计算机输出设备有哪些?计算机输出设备介绍
  3. 计算机中丢失 MSVCR100.dll
  4. php完全手册下载_PHP: 序言 - Manual
  5. java二重循环计数_java的二重循环代码样例
  6. 【Python】斐波那契数列
  7. 带你详细了解机器视觉竞赛—ILSVRC竞赛
  8. 60-10-060-命令-kafka-run-class.sh
  9. ICP算法(Iterative Closest Point迭代最近点算法)
  10. 四、docker-compose的编程模版
  11. 计算机应用基础知识竞赛题,计算机基础知识题库
  12. 通俗易懂的Matlab线性规划求解详解
  13. SQLite3之事务机制详解
  14. [CSP-S模拟测试]:赤壁情(DP)
  15. 手工焊接电路板经验总结
  16. java源码分析-注解AnnotatedElement接口
  17. 部署ServletContext的时候报错 Class com.xxxxx.ContextServlet is not a Servlet
  18. 手机连无线显示服务器超时,手机登录melogin.cn连接超时解决步骤
  19. c语言pl是什么意思,【问答】求助!PL-L PL-S PL-C PL-后面的字母什么意思? - 邦阅网-发现真实的外贸服务商...
  20. 论文领读|基于 VQVAE 的长文本生成

热门文章

  1. 一次软件测试的电话面试分享
  2. python 0 100被7整除_python: 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符串格式化方法美化输出格式。...
  3. 未来人类殡葬一览:太空中正飘着上千个骨灰盒
  4. HTML创建表格及合并单元格
  5. STM32cubeHAL ADC+TIM+DMA (二)
  6. JFinal+Quartz动态任务调度控制台
  7. web开发中常用的几种统计图使用
  8. tp路由器桥接成功无法上网怎么办
  9. 加强生物保护 绿日同学公益组织“国际生物多样性日“宣传活动
  10. 短视频剪辑的三大要点教程,适合刚入门的小白