PDF转Word是一个古老的话题,其难点在于建立从PDF基于元素位置的格式到Word基于内容的格式的映射。

PDF文档实际并不存在段落、表格的概念,PDF转Word要做的就是将PDF文档中“横、竖线条围绕着文本”解析为Word的“表格”,将“文本及下方的一条横线”解析为“文本下划线”,等等。

pdf2docx 支持Windows和Linux平台,要求Python版本>=3.6。喜欢本文记得收藏、关注、点赞。

【注】完整版代码、资料、技术交流,文末见

pdf2docx安装方式

pip install pdf2docx

pdf2docx使用

from pdf2docx import Converter

思路如下

  1. 获取pdf文件路径。

  2. 过滤出当前文件夹中所有的pdf文件。

  3. 提取pdf文件名和后缀名。

  4. 文件名+'docx’拼接重组word文件(改变格式不变文件名)。

  5. 使用pdf2docx进行文件转换。

源码

代码很简单,源码奉上,思路都在注释里已经说明

import os
from pdf2docx import Converterdef pdf_docx():# 获取当前工作目录file_path = os.getcwd()# 遍历所有文件for file in os.listdir(file_path):# 获取文件后缀suff_name = os.path.splitext(file)[1]# 过滤非pdf格式文件if suff_name != '.pdf':continue# 获取文件名称file_name = os.path.splitext(file)[0]# pdf文件名称pdf_name = os.getcwd() + '\\' + file# 要转换的docx文件名称docx_name = os.getcwd() + '\\' + file_name + '.docx'# 加载pdf文档cv = Converter(pdf_name)cv.convert(docx_name)cv.close()

测试

我们准备的pdf文档有格式,有图片。先来进行测试

控制台信息打印如下,0.17秒完成了3页pdf->docx文件的转换

[INFO] Start to convert E:\Python\pycharm++\GOGO数据\卢本伟.pdf
[INFO] [1/4] Opening document...
[INFO] [2/4] Analyzing document...
[WARNING] Replace font "MicrosoftYaHeiUI" with "Times New Roman" due to lack of data.
Deprecation: 'getText' removed from class 'Page' after v1.19.0 - use 'get_text'.
Deprecation: 'getImageList' removed from class 'Page' after v1.19.0 - use 'get_images'.
Deprecation: 'getImageBbox' removed from class 'Page' after v1.19.0 - use 'get_image_bbox'.
Deprecation: 'getPNGData' removed from class 'Pixmap' after v1.19.0 - use 'tobytes'.
Deprecation: 'getDrawings' removed from class 'Page' after v1.19.0 - use 'get_drawings'.
Deprecation: 'getLinks' removed from class 'Page' after v1.19.0 - use 'get_links'.
Deprecation: 'getArea' removed from class 'Rect' after v1.19.0 - use 'get_area'.
[INFO] [3/4] Parsing pages...
[INFO] (1/3) Page 1
[INFO] (2/3) Page 2
[INFO] (3/3) Page 3
[INFO] [4/4] Creating pages...
[INFO] (1/3) Page 1
[INFO] (2/3) Page 2
[INFO] (3/3) Page 3
[INFO] Terminated in 0.17s.

转换完成后的docx文件格式如下:

现在我们已经完成了pdf转word的操作,这样的局限性太大了,万一我的pc没有python环境怎么搞?

接下来我们对文件进行打包,让你随时随地可以转换文档

python 上常见的打包方式目是通过 pyinstaller 来实现的。

pip install pyinstaller

详细步骤

pyinstaller 是一个命令行工具,下面是详细步骤

1、cmd 切换到 python 文件的目录

2、执行命令 pyinstall -F pdfToword.py

执行完毕会发现生成了 3 个文件夹

其中 dist 文件夹就有我们已经打包完成的 exe 文件。

3、双击 exe 就可以运行成功了。一键抓换pdf-word

够方便的吧~~

今天的分享就到此结束啦。

推荐文章

  • 李宏毅《机器学习》国语课程(2022)来了

  • 有人把吴恩达老师的机器学习和深度学习做成了中文版

  • 上瘾了,最近又给公司撸了一个可视化大屏(附源码)

  • 如此优雅,4款 Python 自动数据分析神器真香啊

  • 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学

  • 香的很,整理了20份可视化大屏模板

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

秒啊,Python代码可以轻松打包为可执行的程序相关推荐

  1. electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google ...

  2. 安利个神器, Python 脚本可轻松打包为 exe

    大家好,相信很多小伙伴平时都会去写 Python 代码,如果我们可以把 Python 代码进行打包,制作成各种实用的工具是不是更棒? 今天我就给大家分享一款Python打包神器:auto-py-to- ...

  3. 会写Python代码的人工智能Kite宣布支持Linux,“程序猿”要失业了?

    Kite,那个能为"程序猿"们减少写Python代码时的重复劳动的"自动完成AI",近日宣布,为了回应社区的反馈,它已经添加了对Ubuntu 16.04+.De ...

  4. python100行代码程序-100行python代码,轻松完成贪吃蛇小游戏

    大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个简易版的贪吃蛇.在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比较短, ...

  5. bat贪吃蛇游戏代码_100行python代码,轻松完成贪吃蛇小游戏

    来源:DataGo数据狗   链接: https://mp.weixin.qq.com/s/fDcr1SfcbynLzHye7Q7VOg 大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉 ...

  6. python程序源码百行_百行python代码,轻松完成贪吃蛇小游戏

    引言 作为python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序.以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world'). 这样做效率太低,正确的 ...

  7. python 神经网络_100行Python代码,轻松搞定神经网络 !

    用tensorflow,pytorch这类深度学习库来写一个神经网络早就不稀奇了. 可是,你知道怎么用python和numpy来优雅地搭一个神经网络嘛? 现如今,有多种深度学习框架可供选择,他们带有自 ...

  8. 不到70行 Python 代码,轻松玩转 RFM 用户分析模型(附案例数据和代码)

    作者 | 周志鹏 责编 | 刘静 本文从RFM模型概念入手,结合实际案例,详解Python实现模型的每一步操作,并提供案例同款源数据,以供同学们知行合一. 注:想直接下载代码和数据的同学可以空降文末 ...

  9. python获取交易软件数据_几行Python代码,轻松获取美股阿里巴巴的交易数据

    原创: 野马 菜鸟学Python 学Python可以干很多事情,比如爬虫,数据分析,机器学习,但是有一个非常小众的分支,不仅结合了两大高薪行业,而且还薪水非常诱人,就是量化金融岗位.目前Python已 ...

最新文章

  1. 先自己看文档和百度再沟通
  2. 075-SSH遇到不能登陆的情况
  3. Microsoft Exchange 2010 安装配置
  4. python完全支持面向对象编程_Python面向对象编程
  5. Pycharm:debug调试时使用参数
  6. Springboot中,如何读取配置文件中的属性
  7. 连上WiFi后,笔记本离路由器比较近时,电脑播音偶尔卡音
  8. oracle语句执行过程
  9. 双重所有格和不定代词
  10. Todd Lammle's CCNA IOS Commands Survival Guide
  11. 网络层的拥塞控制与服务质量
  12. 从大数据应用案例中理解大数据的应用价值
  13. Chain validation failed
  14. JavaBean的书写规范
  15. iOS APP:简单粗暴的自制下拉刷新
  16. DirectoryInfo 类
  17. java文档注释用什么开头,极其重要
  18. ORACLE 11g 通过ASH结合AWR实战解决cpu高负载的详细过程
  19. 计算机excel隆华书店销量,计算机二级excel主要函式的用法
  20. 传统运维已然淘汰,市场上究竟哪种运维平台适用于变电所场景呢?

热门文章

  1. CiteSpace的使用(一)——热点图的绘制
  2. 阿里社交软件“点点虫”推“24小时”视频直播功能
  3. android 混淆和去除无用资源
  4. 微信朋友圈点赞的测试点
  5. WPS:如何插入连续的参考文献,例如[1-6]
  6. bootstrap check failure [1] of [2]: max virtual memory areas vm.max_map_count [65530] is too low
  7. Windows: 如何给USB设备安装驱动?
  8. 查看图片出现 net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
  9. python使用百度AI将文字转换为语言
  10. Java file类中的renameTo方法