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

    文章

    173

    浏览量

    34650
  • python
    +关注

    关注

    56

    文章

    4832

    浏览量

    87815

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何通过VCOM4个CAN FD消息转换为SLCAN?

    通过VCOM接口M460系列微控制器(MCU)的4条CAN FD消息转换为SLCAN协议,并发送到计算机。
    发表于 08-19 06:23

    如何判断一款电源管理IC芯片的性能?

    判断一款电源管理 IC(PMIC)的性能,需要结合其核心功能(电压转换、稳定输出、能效控制等)和应用场景(如消费电子、工业控制、汽车电子等),从关键技术指标、实际工况表现、可靠性等多维度综合评估
    的头像 发表于 08-18 09:59 ?89次阅读

    无法Tensorflow Lite模型转换为OpenVINO?格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO? 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    发表于 06-25 08:27

    一款入耳式耳机的仿真与分析

    电子发烧友网站提供《一款入耳式耳机的仿真与分析.pdf》资料免费下载
    发表于 04-22 15:39 ?5次下载

    YOLOv4模型转换为IR的说明,无法模型转换为TensorFlow2格式怎么解决?

    遵照 YOLOv4 模型转换为 IR 的 说明,但无法模型转换为 TensorFlow2* 格式。 YOLOv4 darknet
    发表于 03-07 07:14

    ONNX模型转换为IR后报错,怎么解决?

    运行模型优化器,以 ONNX 模型转换为 IR。 收到错误:[ ERROR ] The ExpandDims node Unsqueeze_333 has more than 1 input
    发表于 03-05 09:11

    使用myriad_compileIR模型转换为blob后收到错误怎么解决?

    使用模型优化器将自定义 TensorFlow* 2 模型转换为中间表示 (IR)。 使用 myriad_compile IR 模型转换为 blob 并收到错误: 遇到未知输入类型的循环 v5
    发表于 03-05 08:27

    Spire.Cloud.Word云端Word文档处理SDK介绍

    Spire.Cloud.Word一款专业的云端 Word 文档处理 SDK,开发人员使用它在云端创建、读取、编辑、转换和保存 Word
    的头像 发表于 02-11 11:11 ?562次阅读
    Spire.Cloud.<b class='flag-5'>Word</b>云端<b class='flag-5'>Word</b>文档处理SDK介绍

    EE-133:ADSP-218x的传统架构文件转换为链接器描述文件

    电子发烧友网站提供《EE-133:ADSP-218x的传统架构文件转换为链接器描述文件.pdf》资料免费下载
    发表于 01-13 16:34 ?0次下载
    EE-133:<b class='flag-5'>将</b>ADSP-218x的传统架构<b class='flag-5'>文件</b><b class='flag-5'>转换为</b>链接器描述<b class='flag-5'>文件</b>

    使用pdfDocs提高工作效率,改进PDF工作流程

    pdfDocs? 通常PDF文档很难正确编辑、整理或编辑。这意味着,许多法律专业人士依靠手工方法复杂的PDF文档合并在起,在MS Word
    的头像 发表于 12-21 15:31 ?540次阅读
    使用pdfDocs提高工作效率,改进<b class='flag-5'>PDF</b>工作流程

    基于TPS40055的设计在15安培时12V总线转换为1.8V

    电子发烧友网站提供《基于TPS40055的设计在15安培时12V总线转换为1.8V.pdf》资料免费下载
    发表于 12-16 09:25 ?2次下载
    基于TPS40055的设计在15安培时<b class='flag-5'>将</b>12V总线<b class='flag-5'>转换为</b>1.8V

    基于TPS40051的设计12V总线转换为15A时的1.8V(slup195)

    电子发烧友网站提供《基于TPS40051的设计12V总线转换为15A时的1.8V(slup195).pdf》资料免费下载
    发表于 12-16 09:19 ?0次下载
    基于TPS40051的设计<b class='flag-5'>将</b>12V总线<b class='flag-5'>转换为</b>15A时的1.8V(slup195)

    base64字符串转换为二进制文件

    Base64是种编码方法,用于二进制数据转换为ASCII字符串。这种编码通常用于在不支持二进制数据的系统中传输数据,例如电子邮件或网页。Base64字符串
    的头像 发表于 11-10 10:55 ?3007次阅读

    通过数字隔离器SPI转换为GPIO

    电子发烧友网站提供《通过数字隔离器SPI转换为GPIO.pdf》资料免费下载
    发表于 09-21 10:20 ?0次下载
    通过数字隔离器<b class='flag-5'>将</b>SPI<b class='flag-5'>转换为</b>GPIO

    Adobe推出一款人工智能视频生产工具

    Adobe即将在今年晚些时候震撼发布其最新力作——Adobe Firefly Video Model,一款专为创意专业人士打造的生成式视频创作与编辑神器。作为Firefly图像生成系列的新成员,该工具以测试版形式率先亮相,旨在通过人工智能技术,为视频创作领域带来前所未有的
    的头像 发表于 09-12 16:37 ?833次阅读