0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享一款批量将PDF文件转换为Word的神器

工程师邓生 来源:Python爱好者集中营 作者:欣一 2022-09-01 17:33 次阅读

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

实现效果

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

6027737a-29d6-11ed-ba43-dac502259ad0.gif



618fe468-29d6-11ed-ba43-dac502259ad0.png

61c0cd08-29d6-11ed-ba43-dac502259ad0.png

环境准备

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

pip install pdf2docx

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

pip install pyinstaller


代码实现

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

pYYBAGMQfMWAKCJIAAA5iyss-GA794.jpg

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

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文档,当所有的步骤都完成的时候,提示我们已经完成了。

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

# 选择本地文件上传
def uploadFiles(self):
global pdfPath_list # 这里为了方便别的地方引用文件路径,将其设置为全局变量
pdfPath_list, fileType = QFileDialog.getOpenFileNames(self.ui, "上传文件", r"路径", "*.pdf;;All Files(*)")
# 显示所选文件的路径
self.ui.lineEdit.setText(",".join(pdfPath_list))

整体的代码如下所示

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_()) # 程序关闭时退出进程


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PDF
    PDF
    +关注

    关注

    1

    文章

    165

    浏览量

    33113
  • python
    +关注

    关注

    53

    文章

    4701

    浏览量

    83701

原文标题:Python 如何实现一键批量将 PDF 文档转 Word?

文章出处:【微信号:AI科技大本营,微信公众号:AI科技大本营】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何通过FX3USB3视频流转换为RGB视频流?

    通过 FX3 USB 3 视频流转换为 RGB 视频流
    发表于 05-22 06:36

    用AllegroPCB转成生产文件多麻烦?这款工具转换

    【问】为何要将PCB文件转换为Gerber文件和钻孔数据? Gerber文件种国际标准的光绘格式
    发表于 03-13 11:10

    如何VCO输出TTL信号转换为具有固定幅度的正弦波?

    而变化,因此最终得到的信号类似于AM而不是FM。 有没有更简单的方法可以VCO输出TTL信号转换为具有固定幅度的正弦波? 如果没有,有没有种方法可以补偿振幅的变化或均匀地抑制信号以在
    发表于 03-01 09:07

    在SWAP模式下编辑lsl文件,如何分区A和B中程序的lsl文件转换为个lsl文件

    启用交换模式后,如何分区 A 和 B 中程序的 lsl 文件转换为个 lsl 文件? 或者我们可以
    发表于 01-25 07:46

    介绍一款基于java的渗透测试神器-CobaltStrike

    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器
    的头像 发表于 01-16 09:16 419次阅读
    介绍<b class='flag-5'>一款</b>基于java的渗透测试<b class='flag-5'>神器</b>-CobaltStrike

    共模电容:又一款EMC滤波神器

    共模电容:又一款EMC滤波神器?|深圳比创达电子(上)
    的头像 发表于 12-25 10:54 381次阅读
    共模电容:又<b class='flag-5'>一款</b>EMC滤波<b class='flag-5'>神器</b>?

    共模电容:又一款EMC滤波神器?|深圳比创达电子(上)

    共模电容:又一款EMC滤波神器?(上)相信不少人是有疑问的,今天深圳市比创达电子科技有限公司就跟大家解答下! 传统共模滤波器的局限性通常我们讨论EMC问题中的噪声及干扰,多是共模噪声、共模干扰
    发表于 12-25 10:53

    oracle怎么把clob字段转换为字符串

    的数据类型。CLOB字段中可以存储非常大的字符数据,例如文本文档、XML文件等。但是,CLOB字段并不能直接转换为字符串,需要使用特定的函数来进行转换。 以下是将CLOB字段转换为字符
    的头像 发表于 11-21 10:32 5479次阅读

    如何spice文件(.cir)转换为Hspice(.sp)或者后缀(.spc)?

    我下载了AD8139的spice文件,想用allegro SI进行信号完整性仿真,但是allegro SI识别不了(.cir)后缀的spice文件,请问如何将之转换为Hspice(.sp)或者Generic Spice(.spc
    发表于 11-21 06:06

    一款国产USB3.0HUB集线器芯片

    *附件:和芯润德 USB3.0HUB 设计资料.rar 推荐一款国产 USB3.0 HUB芯片,型号SL6340 推荐一款国产3.0HUB,型号SL6340,是一款由和芯润德科技自主研发的国产
    发表于 10-20 18:20

    将html文件转换pdf示例

    Java 转换 HTML 到PDF有许多类库,今天我们介绍一下第三方免费的类库OpenPDF。 1. OpenPDF OpenPDF是免费的Java类库 ,遵从LGPL 和 MPL协议,所以基本上
    的头像 发表于 10-09 16:03 882次阅读
    将html<b class='flag-5'>文件</b><b class='flag-5'>转换</b>成<b class='flag-5'>pdf</b>示例

    如何使用Python读取写入Word文件

    01 准备 Python 是一种通用编程语言,也可以用于处理 Microsoft Word 文件。在本文中,我将向你介绍如何使用 Python 和 python-docx 库读取、写入和操作
    的头像 发表于 09-27 17:03 1607次阅读

    请问从yolov5训练出的.pt文件怎么转换为k210可以使用的.kmodel文件

    请问从yolov5训练出的.pt文件怎么转换为k210可以使用的.kmodel文件?谢谢大家了
    发表于 09-13 07:31

    使用快速Fourier变换法ADC样本转换为频域频谱的方法和结果

    : NuTiny-SDK-NUC121_V1.0 快速傅里叶变换(FFT)是种常用的信号分析方法,可用于离散时间信号转换为频域频谱,用户可以从FFFT中受益,观察频谱并找出原始信号的频率构成。这个示例
    发表于 08-22 08:13

    ​2PDF 2.0:使用新发布的2PDF从命令行创建PDF文件

    Microsoft Office 应用程序——2PDF 可以转换 Word、Excel、Outlook 文件而无需任何其他软件。
    的头像 发表于 08-15 17:03 1027次阅读