广告位联系
返回顶部
分享到

Python一键实现PDF文档批量转Word

python 来源:互联网 作者:佚名 发布时间:2022-08-29 21:28:05 人浏览
摘要

无论是在工作还是学习当中,大家都会遇到这样一个问题,将PDF当中的内容(文本和图片)转换为Word的格式,也就是说从只读转换成可编辑的格式。网上绝大多数的工具也都是收费的,今

无论是在工作还是学习当中,大家都会遇到这样一个问题,将“PDF当中的内容(文本和图片)转换为Word的格式”,也就是说从只读转换成可编辑的格式。网上绝大多数的工具也都是收费的,今天小编就给大家制作了一款批量将PDF文件转换为Word的神器,使用起来也是相当的方便。

实现效果

我们首先来看一下出来的效果,如下图所示

环境准备

用到的模块叫做pdf2docx,我们通过pip命令进行下载,如下

1

pip install pdf2docx

后续我们还可以为py文件打包,用到的库是pyinstaller

1

pip install pyinstaller

代码实现

我们先简单地实现将单个PDF文档转换成Word文档,代码如下

1

2

3

4

from pdf2docx import Converter

cv = Converter(r"pdf文件的路径")

cv.convert("test.docx", start=0,end=None)

cv.close()

那么上面的是单个PDF文件,要是涉及到是多个PDF文件,则需要用到遍历上传过来的每一个文件,用到for循环遍历

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

def startAction(self):

    output_path_1 = Path.joinpath(Path.home(), "Desktop")

    output_path_2 = str(output_path_1) + "\\output"

    if not os.path.exists(output_path_2):

        os.mkdir(output_path_2)

 

    for path_list in pdfPath_list:

        print("路径: ", path_list)

        name = path_list.split("/")[-1].split(".")[0]

        cv = Converter(path_list)

        cv.convert(output_path_2 + "\\{}.docx".format(name), start=0, end=None)

        cv.close()

 

    msg_box = QMessageBox(QMessageBox.Information, '完成', '提取完成', QMessageBox.Yes)

    msg_box.exec_()

上述的代码,我们首先将指定好输出的Word文档的位置,这里小编设置的是在桌面,然后通过for循环去遍历处理每一个PDF文档,当所有的步骤都完成的时候,提示我们已经完成了。

当然整个可视化界面当中还有一个上传文件的功能,代码如下

1

2

3

4

5

6

# 选择本地文件上传

def uploadFiles(self):

    global pdfPath_list  # 这里为了方便别的地方引用文件路径,将其设置为全局变量

    pdfPath_list, fileType = QFileDialog.getOpenFileNames(self.ui, "上传文件", r"路径", "*.pdf;;All Files(*)")

    # 显示所选文件的路径

    self.ui.lineEdit.setText(",".join(pdfPath_list))

整体的代码如下所示

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

from PySide2.QtWidgets import QApplication, QMessageBox, QFileDialog

from PySide2.QtUiTools import QUiLoader

from pdf2docx import Converter

from pathlib import Path

import os

 

class OCRQt:

    def __init__(self):

        self.ui = QUiLoader().load('pdf2word.ui')

        self.ui.pushButton.clicked.connect(self.uploadFiles)

        self.ui.pushButton_2.clicked.connect(self.startAction)

 

    def uploadFiles(self):

        ........

        ........

 

    def startAction(self):

        .......

        .......

 

if __name__ == '__main__':

    app = QApplication([])

    # 显示创建的界面

    MainWindow = OCRQt()  # 创建窗体对象

    MainWindow.ui.show()  # 显示窗体

    app.exit(app.exec_())  # 程序关闭时退出进程


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://mp.weixin.qq.com/s/zKHeWeymBeE7F_99rdWXFA
相关文章
  • Python Django教程之实现新闻应用程序

    Python Django教程之实现新闻应用程序
    Django是一个用Python编写的高级框架,它允许我们创建服务器端Web应用程序。在本文中,我们将了解如何使用Django创建新闻应用程序。 我们将
  • 书写Python代码的一种更优雅方式(推荐!)

    书写Python代码的一种更优雅方式(推荐!)
    一些比较熟悉pandas的读者朋友应该经常会使用query()、eval()、pipe()、assign()等pandas的常用方法,书写可读性很高的「链式」数据分析处理代码
  • Python灰度变换中伽马变换分析实现

    Python灰度变换中伽马变换分析实现
    1. 介绍 伽马变换主要目的是对比度拉伸,将图像灰度较低的部分进行修正 伽马变换针对的是对单个像素点的变换,也就是点对点的映射 形
  • 使用OpenCV实现迷宫解密的全过程

    使用OpenCV实现迷宫解密的全过程
    一、你能自己走出迷宫吗? 如下图所示,可以看到是一张较为复杂的迷宫图,相信也有人尝试过自己一点一点的找出口,但我们肉眼来解谜
  • Python中的数据精度问题的介绍

    Python中的数据精度问题的介绍
    一、python运算时精度问题 1.运行时精度问题 在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和
  • Python随机值生成的常用方法

    Python随机值生成的常用方法
    一、随机整数 1.包含上下限:[a, b] 1 2 3 4 import random #1、随机整数:包含上下限:[a, b] for i in range(10): print(random.randint(0,5),end= | ) 查看运行结
  • Python字典高级用法深入分析讲解
    一、 collections 中 defaultdict 的使用 1.字典的键映射多个值 将下面的列表转成字典 l = [(a,2),(b,3),(a,1),(b,4),(a,3),(a,1),(b,3)] 一个字典就是一个键对
  • Python浅析多态与鸭子类型使用实例
    什么多态:同一事物有多种形态 为何要有多态=》多态会带来什么样的特性,多态性 多态性指的是可以在不考虑对象具体类型的情况下而直
  • Python字典高级用法深入分析介绍
    一、 collections 中 defaultdict 的使用 1.字典的键映射多个值 将下面的列表转成字典 l = [(a,2),(b,3),(a,1),(b,4),(a,3),(a,1),(b,3)] 一个字典就是一个键对
  • Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本

    Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本
    我们的目标是秒杀淘宝或京东等的订单,这里面有几个关键点,首先需要登录淘宝或京东,其次你需要准备好订单,最后要在指定时间快速
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计