Python PDF文件转Word格式,只需要3秒(附打包)
PDF文档遵循一定的规范,例如精确定位了每个字符出现在页面上的坐标、根据坐标绘制的各种形状(线、矩形、曲线等)。所以,用PDF格式传输和打印文档可以保证格式的一致性,不会像Word那样因为渲染引擎的不同而出现格式错乱、多页少页等问题。
Word文档则是一种流式布局,元素之间的相对距离决定了其呈现在页面上的最终位置。因此适合编辑内容,前文内容的修改自动促发后续文档布局的更新。
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
够方便的吧~~
今天的分享就到此结束啦,
Python PDF文件转Word格式,只需要3秒(附打包)相关推荐
- Python PDF文件转Word格式
1.免费在线转换网站 PDF转换器,限制50页: http://pdfdo.com/pdf-to-word.aspx 迅捷PDF转换器,限制2M: http://app.xunjiepdf.com/p ...
- python读取加密word_Python 实现加密过的PDF文件转WORD格式
更多python教程请到: 菜鸟教程www.piaodoo.com 人人影视www.sfkyty.com 实现方法简介 许多文件都支持转换为PDF格式,诸如Word,Excel,PowerPoint, ...
- python 修改pdf_Python 实现加密过的PDF文件转WORD格式
实现方法简介 许多文件都支持转换为PDF格式,诸如Word,Excel,PowerPoint,Cad以及图片格式.所以pdf从学校到职场,都可以看到pdf文件的身影. 为了保证了文件的安全性,正常情况 ...
- C# 将PDF文件转换为word格式
Pdf(Portable Document Format)意为"便携式文档格式",是现在最流行的文件格式之一,它有很多优点如:尺寸较小.阅读方便.操作系统平台通用等,非常适合在网络 ...
- python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...
- python把pdf转word_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
作者:菜鸟分析 Python爱好者社区--专栏作者 个人介绍:一个痴迷于Python语言的业余程序猿,未来的理想是能够与一群痴迷于Python语言的程序猿改变世界 知乎专栏: https://zhua ...
- 如何快速将PDF文件转换为Word文档
PDF文件是一个广泛使用的电子文档格式,其被广泛应用于各种领域,包括教育.商业和政府.虽然PDF文件非常实用,但有时你需要将其转换为Word文档,以便更方便地编辑和处理.以下是几种快速将PDF文件转换 ...
- 怎样快速的将WPS文件转换为word格式
如何将WPS文件转换为word格式!相信大家会很有疑问的,由于一般在工作中在办公使用的WPS所以保存的文件都是以WPS格式的文件,那么有时候可能需要你将WPS转换成word格式.那么下面小编交给大家一 ...
- Python PDF文件合并,提取
文章目录 1. 功能介绍 2.项目难点 1. tkinter设置图标显示 3. 源代码 3. 代码打包 1. 打包过后程序运行出错 2. 打包命令 3.打包技巧 1. 功能介绍 选择两个pdf指定的页 ...
最新文章
- 轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?
- 信息化道路上,这两家龙头企业做了什么
- 汉语科技术语识别实验结果
- matlab的日期当循环量,R语言与matlab循环时间对比
- python中如何求列表中的和_python实现求解列表中元素的排列和组合
- spark sql基本使用方法介绍(转载)
- [转]AIX平台下如何增加用户和组的名称长度
- linux sort多磁盘排序,linux shell sort多字段排序
- WCF的追踪分析工具——SvcPerf
- 灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
- java混淆加密_源代码部分加密混淆方案
- 写一个小程序实现win系统定时锁屏
- 【深入浅出通信原理-学习笔记】通信系统概述
- post请求测试软件,简单的Http请求测试工具(支持get,post)
- Zookeeper可以干什么
- xdg在Linux中的用法,linux-如何使用sudo获取XDG变量?
- tenforflow版YOLOv3下VOC数据集的准备和训练
- 解析Hl7消息,将消息可视化
- 快捷方式图标变成白色
- OEL6.5+11GR2安装(超级详细版)