当前位置: 首页 > 科技观察

惊艳同事的自动化小工具来了!PDF文档一键批量转换成Word

时间:2023-03-17 00:27:07 科技观察

不管是工作还是学习,大家都会遇到这样一个问题,“将PDF中的内容(文字和图片)转换成Word格式”,也就是说,从阅读-仅转换为可编辑格式。网上的大部分工具也是收费的。今天小编做了一个PDF文件批量转Word的神器。使用起来也相当方便。实现效果先来看看效果,如下图:环境准备用到的模块叫pdf2docx,我们通过pip命令下载,如下:pipinstallpdf2docx之后我们也可以打包py文件,使用的库是pyinstaller:pipinstallpyinstaller代码实现我们先简单的把单个PDF文档转换成Word文档,代码如下:frompdf2docximportConvertercv=Converter(r"pdf文件的路径")cv.convert("test.docx",start=0,end=None)cv.close()然后上面是单个PDF文件,如果涉及多个PDF文件,需要遍历每个上传的文件,使用for循环遍历:defstartAction(self):output_path_1=Path.joinpath(Path.home(),"Desktop")output_path_2=str(output_path_1)+"\\output"如果不是os.path.exists(output_path_2):os.mkdir(output_path_2)forpath_listinpdfPath_list:print("path:",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文档,当所有当所有步骤完成后,提示我们已经完成当然整个可视化界面也有上传文件的功能,代码如下:#选择本地文件上传defuploadFiles(self):globalpdfPath_list#这里是为了方便其他地方引用文件路径,设置为全局变量选中文件self.ui.lineEdit.setText(",".join(pdfPath_list))整体代码如下:fromPySide2.QtWidgetsimportQApplication,QMessageBox,QFileDialogfromPySide2.QtUiToolsimportQUiLoaderfrompdf2docximportConverterfrompathlibimportPathimportosclassOCRQt:def__init__(self):self.uier=QUiLoaderload('pdf2word.ui')self.ui.pushButton.clicked.connect(self.uploadFiles)self.ui.pushButton_2.clicked.connect(self.startAction))defuploadFiles(self):......defstartAction(self):.....if__name__=='__main__':应用程序=QApplication([])#显示创建的界面MainWindow=OCRQt()#创建窗体对象MainWindow.ui.show()#显示窗体app.exit(app.exec_())#程序关闭时退出进程