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

思路如下

  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

够方便的吧~~

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

Python PDF文件转Word格式,只需要3秒(附打包)相关推荐

  1. Python PDF文件转Word格式

    1.免费在线转换网站 PDF转换器,限制50页: http://pdfdo.com/pdf-to-word.aspx 迅捷PDF转换器,限制2M: http://app.xunjiepdf.com/p ...

  2. python读取加密word_Python 实现加密过的PDF文件转WORD格式

    更多python教程请到: 菜鸟教程www.piaodoo.com 人人影视www.sfkyty.com 实现方法简介 许多文件都支持转换为PDF格式,诸如Word,Excel,PowerPoint, ...

  3. python 修改pdf_Python 实现加密过的PDF文件转WORD格式

    实现方法简介 许多文件都支持转换为PDF格式,诸如Word,Excel,PowerPoint,Cad以及图片格式.所以pdf从学校到职场,都可以看到pdf文件的身影. 为了保证了文件的安全性,正常情况 ...

  4. C# 将PDF文件转换为word格式

    Pdf(Portable Document Format)意为"便携式文档格式",是现在最流行的文件格式之一,它有很多优点如:尺寸较小.阅读方便.操作系统平台通用等,非常适合在网络 ...

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

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

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

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

  7. 如何快速将PDF文件转换为Word文档

    PDF文件是一个广泛使用的电子文档格式,其被广泛应用于各种领域,包括教育.商业和政府.虽然PDF文件非常实用,但有时你需要将其转换为Word文档,以便更方便地编辑和处理.以下是几种快速将PDF文件转换 ...

  8. 怎样快速的将WPS文件转换为word格式

    如何将WPS文件转换为word格式!相信大家会很有疑问的,由于一般在工作中在办公使用的WPS所以保存的文件都是以WPS格式的文件,那么有时候可能需要你将WPS转换成word格式.那么下面小编交给大家一 ...

  9. Python PDF文件合并,提取

    文章目录 1. 功能介绍 2.项目难点 1. tkinter设置图标显示 3. 源代码 3. 代码打包 1. 打包过后程序运行出错 2. 打包命令 3.打包技巧 1. 功能介绍 选择两个pdf指定的页 ...

最新文章

  1. 轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?
  2. 信息化道路上,这两家龙头企业做了什么
  3. 汉语科技术语识别实验结果
  4. matlab的日期当循环量,R语言与matlab循环时间对比
  5. python中如何求列表中的和_python实现求解列表中元素的排列和组合
  6. spark sql基本使用方法介绍(转载)
  7. [转]AIX平台下如何增加用户和组的名称长度
  8. linux sort多磁盘排序,linux shell sort多字段排序
  9. WCF的追踪分析工具——SvcPerf
  10. 灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
  11. java混淆加密_源代码部分加密混淆方案
  12. 写一个小程序实现win系统定时锁屏
  13. 【深入浅出通信原理-学习笔记】通信系统概述
  14. post请求测试软件,简单的Http请求测试工具(支持get,post)
  15. Zookeeper可以干什么
  16. xdg在Linux中的用法,linux-如何使用sudo获取XDG变量?
  17. tenforflow版YOLOv3下VOC数据集的准备和训练
  18. 解析Hl7消息,将消息可视化
  19. 快捷方式图标变成白色
  20. OEL6.5+11GR2安装(超级详细版)

热门文章

  1. sql在线练习网站(http://sqlzoo.cn)答案解析
  2. 心态炸崩裂,千万别用 git clean -d -f
  3. 计算机体系结构——锁和互斥
  4. 高通平台手机开发之Sensor
  5. solr suggest 实现拼音或汉字 输入都能达到推荐搜索的要求.
  6. 【智慧医疗】监护仪一些常用指标含义说明
  7. lookback地址
  8. MySQL_6 自连接和外连接
  9. javaweb基于SSH开发医院人事管理系统+论文+PPT 课程设计 毕业设计源码
  10. easyui之combotree下拉框多选框