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学习与数据挖掘,后台回复:加群

竟可如此轻松解决,PDF 转 Word只需几行 Python 代码相关推荐

  1. 程序员的乐趣,生成自定义二维码,5行Python代码就解决

    随处可见的二维码是怎么生成的?自己做一个试试吧. 随着互联网和智能移动设备不断普及,二维码(Quick Response code)已经成为世界上应用最为广泛的信息载体之一.生成二维码的工具也层出不穷 ...

  2. python pdf编辑开发_20行Python代码实现一款永久免费PDF编辑工具的实现

    PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程 ...

  3. python语音对话查询起始路和目的地_精选:语音对话机器人,百行Python代码就能轻松实现...

    原标题:精选:语音对话机器人,百行Python代码就能轻松实现 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大 ...

  4. 10行Python代码批量实现pdf转txt,word,提取表格到excel

    在日常工作中,常常要把文档转格式,比如常见pdf转word,pdf转ppt等,如果数量少的话还好,可以直接去网上找网站解决,多了的话就比较麻烦了,因为很多网站都是限制一天只能转几个,再多就得冲vip. ...

  5. 基于pdf2docx模块Python实现批量将PDF转Word文档(安装+完整代码教程)

    PDF文件是一种常见的文档格式,但是在编辑和修改时不太方便,因为PDF本质上是一种静态的文档格式.因此,有时候我们需要将PDF文件转换成Word格式,以便更好地编辑和修改文档.在本篇文章中,我们将介绍 ...

  6. 手把手 | 20行Python代码教你批量将PDF转为Word

    2019独角兽企业重金招聘Python工程师标准>>> 在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 艹,倒霉,2M的P ...

  7. python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...

    在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...

  8. 1行Python代码实现:PDF转Word。

    大家好,今天给大家介绍 python-office 近期更新的功能之一:1行代码,实现PDF转Word. 真的很实用! 1. 安装python-office 安装很简单,在有python环境的电脑上, ...

  9. python把pdf转word_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...

    作者:菜鸟分析 Python爱好者社区--专栏作者 个人介绍:一个痴迷于Python语言的业余程序猿,未来的理想是能够与一群痴迷于Python语言的程序猿改变世界 知乎专栏: https://zhua ...

最新文章

  1. xml python gb2312_使用Python处理XML格式数据的方法介绍
  2. java getstringbounds_java-AttributedString的FontMetrics.getStringBounds给出...
  3. Django(part33)--数据库的迁移
  4. 如何检测当前的ABAP report是运行在inactive版本下
  5. 主机无法访问虚拟机的httpd服务
  6. 一键清理maven未下载完全的依赖脚本
  7. Discuz! X2.5 添加风格模板
  8. ActiveMQ 无法启动 提示端口被占用 解决方案
  9. Python24中使用urllib时遇到IOError的正确打开方式
  10. 为什么程序员不应该在同一家公司待太久?
  11. Shel相关编程(四)
  12. 有限元形函数及JuliaFEM中的实现方式
  13. ubuntu安装pr_[原创]Dapr入门教程之二:Dapr的安装
  14. birthday中文是什么_ffappybirthday翻译
  15. UVa 10036 - Divisibility
  16. fbm是什么意思_fba是什么意思
  17. 搭建一整套电销机器人系统需要哪些技术和资源
  18. DataStream API【1】
  19. 计算圆、圆球和圆锥的面积和体积
  20. 关于comparator升序、降序

热门文章

  1. ubuntu开机后经常提示:检测到系统程序出现问题
  2. 【linux-56】文件系统管理-df,du
  3. 人脑皮层组织的大尺度梯度 Large-Scale Gradients in Human Cortical Organization
  4. win10下安装Prodave6.2
  5. PYTHON重要信息通知(短信通知+语音播报)解决方案
  6. Vue学习日志之指令和事件
  7. PhP 常见安装错误configure error xml2-config not found. please check your libxml2 installation
  8. 苹果x来电闪光灯怎么设置_苹果相机网格怎么设置,新iPhone拍照前必须设置?...
  9. 最好的护眼灯是什么牌子?央视315护眼灯合格名单
  10. 深入理解RHEL6开机启动原理