竟可如此轻松解决,PDF 转 Word只需几行 Python 代码
PDF转Word是一个古老的话题,其难点在于建立从PDF基于元素位置的格式到Word基于内容的格式的映射。
PDF文档实际并不存在段落、表格的概念,PDF转Word要做的就是将PDF文档中“横、竖线条围绕着文本”解析为Word的“表格”,将“文本及下方的一条横线”解析为“文本下划线”等等
需要明确的是:pdf2docx支持Windows和Linux平台,要求Python版本>=3.6。喜欢本文记得收藏、关注、点赞。
【注】完整版代码、数据、交流,文末有
pdf2docx安装方式:
pip install pdf2docx
pdf2docx使用
from pdf2docx import Converter
思路如下
获取pdf文件路径。
过滤出当前文件夹中所有的pdf文件。
提取pdf文件名和后缀名。
文件名+'docx’拼接重组word文件(改变格式不变文件名)。
使用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 代码相关推荐
- 程序员的乐趣,生成自定义二维码,5行Python代码就解决
随处可见的二维码是怎么生成的?自己做一个试试吧. 随着互联网和智能移动设备不断普及,二维码(Quick Response code)已经成为世界上应用最为广泛的信息载体之一.生成二维码的工具也层出不穷 ...
- python pdf编辑开发_20行Python代码实现一款永久免费PDF编辑工具的实现
PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程 ...
- python语音对话查询起始路和目的地_精选:语音对话机器人,百行Python代码就能轻松实现...
原标题:精选:语音对话机器人,百行Python代码就能轻松实现 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大 ...
- 10行Python代码批量实现pdf转txt,word,提取表格到excel
在日常工作中,常常要把文档转格式,比如常见pdf转word,pdf转ppt等,如果数量少的话还好,可以直接去网上找网站解决,多了的话就比较麻烦了,因为很多网站都是限制一天只能转几个,再多就得冲vip. ...
- 基于pdf2docx模块Python实现批量将PDF转Word文档(安装+完整代码教程)
PDF文件是一种常见的文档格式,但是在编辑和修改时不太方便,因为PDF本质上是一种静态的文档格式.因此,有时候我们需要将PDF文件转换成Word格式,以便更好地编辑和修改文档.在本篇文章中,我们将介绍 ...
- 手把手 | 20行Python代码教你批量将PDF转为Word
2019独角兽企业重金招聘Python工程师标准>>> 在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 艹,倒霉,2M的P ...
- python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...
- 1行Python代码实现:PDF转Word。
大家好,今天给大家介绍 python-office 近期更新的功能之一:1行代码,实现PDF转Word. 真的很实用! 1. 安装python-office 安装很简单,在有python环境的电脑上, ...
- python把pdf转word_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
作者:菜鸟分析 Python爱好者社区--专栏作者 个人介绍:一个痴迷于Python语言的业余程序猿,未来的理想是能够与一群痴迷于Python语言的程序猿改变世界 知乎专栏: https://zhua ...
最新文章
- xml python gb2312_使用Python处理XML格式数据的方法介绍
- java getstringbounds_java-AttributedString的FontMetrics.getStringBounds给出...
- Django(part33)--数据库的迁移
- 如何检测当前的ABAP report是运行在inactive版本下
- 主机无法访问虚拟机的httpd服务
- 一键清理maven未下载完全的依赖脚本
- Discuz! X2.5 添加风格模板
- ActiveMQ 无法启动 提示端口被占用 解决方案
- Python24中使用urllib时遇到IOError的正确打开方式
- 为什么程序员不应该在同一家公司待太久?
- Shel相关编程(四)
- 有限元形函数及JuliaFEM中的实现方式
- ubuntu安装pr_[原创]Dapr入门教程之二:Dapr的安装
- birthday中文是什么_ffappybirthday翻译
- UVa 10036 - Divisibility
- fbm是什么意思_fba是什么意思
- 搭建一整套电销机器人系统需要哪些技术和资源
- DataStream API【1】
- 计算圆、圆球和圆锥的面积和体积
- 关于comparator升序、降序
热门文章
- ubuntu开机后经常提示:检测到系统程序出现问题
- 【linux-56】文件系统管理-df,du
- 人脑皮层组织的大尺度梯度 Large-Scale Gradients in Human Cortical Organization
- win10下安装Prodave6.2
- PYTHON重要信息通知(短信通知+语音播报)解决方案
- Vue学习日志之指令和事件
- PhP 常见安装错误configure error xml2-config not found. please check your libxml2 installation
- 苹果x来电闪光灯怎么设置_苹果相机网格怎么设置,新iPhone拍照前必须设置?...
- 最好的护眼灯是什么牌子?央视315护眼灯合格名单
- 深入理解RHEL6开机启动原理