在平时生活、学习中总会遇到一些文件格式的转化问题,在很多软件啊,网站都可以转换,但是都要付钱的;面对这个问题我也是经历过的,学习了python发现文件转换不就轻轻松松吗,接下来我带大家一起来学习如何进行文件的转化。

一、pdf文件转换为word 文件

需要导入的库:

from pdf2docx import Converter

如果没有就安装一些安装代码:

pip install pdf2docx

代码段很少:

pdf_file = '形势与政策.pdf'#需要转换的pdf文件的地址和名字
docx_file = '转换后.docx'#转换后的word文件的地址和名字
cov = Converter(pdf_file)#
cov.convert(docx_file, start=0, end=None)#
#start和end参数是值定转换页码的范围;默认是从第一页到最后一页;也可以通过pages指定不连续的页面比#如:pages=[2,4,6]
cov.close()

二、word转pdf文件

需要导入的库:

from win32com import client

这个库安装挺麻烦的,我当初找了很多方法,发现我的python3.8.6版本的直接用代码安装就可以:

pip install pypiwin32

文件转换代码如下:

from win32com import client
def Tdoc2pdf(doc_name, pdf_name):""":word文件转pdf:docx_name word文件名称:pdf_name 转换后pdf文件名称"""word = client.DispatchEx("Word.Application")#打开word应用程序worddoc = word.Documents.Open(doc_name, ReadOnly=1)#打开word文件worddoc.SaveAs(pdf_name, FileFormat=17)#保存为pdf文件,其中FileFormat=17表示转换为pdf破地方文件FileFormat的参数有0-17,都代表不一样的文件worddoc.Close()#关闭原来的word文件return pdf_name   Tdoc2pdf(r'E:/python/pythonProject/转换pdf为word/转换后.docx',r'E:/python/pythonProject/转换pdf为word/转换后.pdf')

接下来展示一下我写的文件转换小程序的代码:

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
import sys
import osfrom PyQt5.QtGui import QFont
from pdf2docx import Converter
from win32com import client
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMessageBoxclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.setFixedSize(375, 530)MainWindow.setStyleSheet("background:rgb(230,230,241)")self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.font = QFont()self.font.setFamily('华文楷体')self.font.setPointSizeF(10)self.Open_dir = QtWidgets.QPushButton(self.centralwidget)self.Open_dir.setGeometry(QtCore.QRect(140, 20, 93, 28))self.Open_dir.setObjectName("Open_dir")self.Open_dir.setFont(self.font)self.textEdit = QtWidgets.QTextEdit(self.centralwidget)self.textEdit.setGeometry(QtCore.QRect(80, 60, 201, 90))self.textEdit.setObjectName("textEdit")self.textEdit.setFont(self.font)self.textEdit.setReadOnly(True)self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(140, 310, 93, 28))self.label.setObjectName("label")self.label.setFont(self.font)self.label.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignHCenter)self.label1 = QtWidgets.QLabel(self.centralwidget)self.label1.setGeometry(QtCore.QRect(140, 340, 93, 28))self.label1.setObjectName("label1")self.label1.setStyleSheet("background:rgb(0,245,225);")self.label1.setFont(self.font)self.label1.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignHCenter)self.label2 = QtWidgets.QLabel(self.centralwidget)self.label2.setGeometry(QtCore.QRect(80, 150, 201, 100))self.label2.setObjectName("label2")self.label2.setText('温馨提示:一次只能传一个文件进行转换,保存的文件和原始文件在一个位置')self.label2.setWordWrap(True)  # 设置自动换行self.label2.setFont(self.font)self.label2.setStyleSheet("background:rgb(92,151,240);border-radius:10xp")self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)self.textEdit_2.setGeometry(QtCore.QRect(80, 380, 201, 110))self.textEdit_2.setObjectName("textEdit_2")self.textEdit_2.setReadOnly(True)self.textEdit_2.setFont(self.font)self.Pdf_word = QtWidgets.QPushButton(self.centralwidget)self.Pdf_word.setGeometry(QtCore.QRect(60, 255, 100, 28))self.Pdf_word.setObjectName("Pdf_word")self.Pdf_word.setFont(self.font)self.Word_pdf = QtWidgets.QPushButton(self.centralwidget)self.Word_pdf.setGeometry(QtCore.QRect(200, 255, 100, 28))self.Word_pdf.setObjectName("Word_pdf")self.Word_pdf.setFont(self.font)MainWindow.setCentralWidget(self.centralwidget)self.statusBar = QtWidgets.QStatusBar(MainWindow)self.statusBar.setObjectName("statusBar")MainWindow.setStatusBar(self.statusBar)self.statusBar.showMessage('简约先森编写')self.Open_dir.clicked.connect(self.OpenDir)self.Word_pdf.clicked.connect(self.PdfConversion)self.Pdf_word.clicked.connect(self.DocxConversion)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def OpenDir(self):global imgNameself.textEdit.clear()self.textEdit_2.clear()imgName, imgType = QFileDialog.getOpenFileName(self.centralwidget, "打开文件","/","All Files(*);;*.pdf;;*.docx;;")#MultiSelect=Truename=imgName.split('/')if name[-1] in 'doc'or'docx'or'pdf':self.textEdit.append(name[-1])else:self.Tips('只能传入word或者pdf文件')def PdfConversion(self):try:if imgName:self.label1.setText('请稍等.....')if imgName.split('.')[-1] in 'docx' or 'doc':word = client.Dispatch("Word.Application")  # 打开word应用程序# for file in files:pdf_file = imgName.split('.')[0] + '_X' + '.pdf'doc = word.Documents.Open(imgName)  # 打开word文件doc.SaveAs(pdf_file, 17)  # 另存为后缀为".pdf"的文件,其中参数17表示为pdfdoc.Close()  # 关闭原来word文件name = pdf_file.split('/')[-1]self.textEdit_2.append(name)self.label1.setText('转换成功')word.Quit()else:name = imgName.split('/')[-1]self.Tips(f'{name}不是word文件,你应该是要转换为word文件')else:self.Tips('请传入需要转换的文件')except:self.Tips('请传入需要转换的文件')def Tips(self, message):QMessageBox.about(MainWindow, "提示", message)def DocxConversion(self):try:print(imgName)if imgName:self.label1.setText('请稍等.....')if imgName.split('.')[-1] in 'pdf':cv = Converter(imgName)docx_file = imgName.split('.')[0] + '_X' + '.docx'cv.convert(docx_file, start=0, end=None)cv.close()name = docx_file.split('/')[-1]self.textEdit_2.append(name)self.label1.setText('转化成功')else:name = imgName.split('/')[-1]self.Tips(f'{name}不是pdf文件,你应该是要转化为pdf文件')else:self.Tips('请传入需要转换的文件')except:self.Tips('请传入需要转换的文件')def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "pdf转换器"))self.Open_dir.setText(_translate("MainWindow", "打开文件"))self.label.setText(_translate("MainWindow", "转换结果"))self.Pdf_word.setText(_translate("MainWindow", "pdf转为word"))self.Word_pdf.setText(_translate("MainWindow", "word转为pdf"))
if __name__=='__main__':app=QtWidgets.QApplication(sys.argv)app.setStyle('Fusion')MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

我是用pyqt5编写的界面不是很好看,但是功能使用就行,喜欢的可以复制代码调试一下,打包后就可以直接发给朋友使用了,下面就是界面,我没进行美化,可以使用QSS进行界面美化

文件命名不能和同一个文件夹的文件相同,相同的话会覆盖原来的文件,喜欢的可以点个关注

pdf文件转word文件,word转pdf文件小程序相关推荐

  1. ieda ts文件报错_使用TS开发微信小程序(1):环境搭建——VSCode+TS

    前言 现在接到小程序需要改版的需求,由于使用Ionic的经验,希望以后能够统一开发语言降低开发成本,所以想使用TypeScript进行开发. 开发前准备工作 先是看官网,在微信小程序的官方开发文档中找 ...

  2. exe文件解包_如何获取别人微信小程序的源文件?

    如何获取别人微信小程序的源文件? ·简单聊一下 xxxxx.wxapkg 小程序的源文件存放在哪?(当然是在微信的服务器上) ·但是在微信服务器上,用户想要获取到,肯定是十分困难的,有没有别的办法呢? ...

  3. IOS 将百度网盘中的文件直接发到微信而不是通过小程序或是网盘链接

    1.在百度网盘中将对应文件打开(比如某个txt) 2.单击屏幕,调出菜单,右下角"更多"->"打开" 3.选择拷贝到微信 就能把文件直接发到微信(文件传输 ...

  4. curl http header_利用Linux命令cURL实现文件定时上传到ftp服务器的小程序,实用

    前言 前段时间群里讨论,想实现某个文件定时上传到服务器要怎么来实现.我记得之前做过 一个项目:为高通的iot模组编写FOTA功能:实现模组可以远程下载升级镜像包,实现版本升级功能.并当时使用的一个超级 ...

  5. 【教程】公众号图文添加Word、Excel、PDF等文件

    在公司公众号发招聘信息时,需要把招聘信息文档和表格放在推文里供用户下载,HR小姐姐试了很多种方法,都不太满意.最后,还是我手摸(把)手地教会了她怎么使用「文章附件」小程序上传附件并在公众号推文中引用. ...

  6. 【微信小程序】下载并预览文档——pdf、word、excel等多种类型

    简要:wx.downloadFile(OBJECT)下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径.wx.openDocument(OBJECT)新开页面打开文 ...

  7. 基于 PHP 实现的微信小程序 pdf 文件的预览服务

    知识点 微信小程序预览pdf文件 问题描述 前段时间文库类微信小程序开发中遇到个问题,就是要在小程序中预览阿里云 OSS 中的 pdf 文件.微信官方给的方案就一个,就是把文档缓存到本地然后用资源管理 ...

  8. 微信小程序中处理PDF文件

    一直在尝试要在微信小程序中处理PDF文件,包括生成PDF文件和检测某个PDF文档的页数,但是微信小程序的接口不支持这个功能,只能是想办法在js文件中实现这个代码,这个代码的实现需要pdf-lib 这个 ...

  9. 你想要的PDF预览新方式,微信小程序绝对不容错过

    前言 随着微信小程序的不断发展和变革,越来越多的功能被开发出来,其中预览 PDF 文件功能也已经成为小程序的常见应用之一.今天,我们将针对微信小程序预览 PDF 这一功能,为大家详细解析和介绍. 实现 ...

  10. 微信小程序入门五: wxml文件引用、模版、生命周期

    实例内容 wxml文件引用(include.import) 模版 小程序生命周期 实例一: include方式引用header.wxml文件 文件引用对于代码的重用非常重要,例如在web开发中我们可以 ...

最新文章

  1. 小程序调用微信支付返回错误
  2. android 模拟器 相册里传照片_引力相册APP下载-引力相册下载v1.1 官方版
  3. 基本的JVM内存分配过程案例
  4. Redis面试 - 集群模式
  5. 在私企里,男工人能工作到退休年龄60岁吗?
  6. Egret入门学习日记 --- 第十八篇(书中 8.5~8.7 节 内容)
  7. Excel-财务函数1
  8. Android系统中SD卡各文件夹名称功能详解
  9. e签宝:借助钉钉宜搭变革传统项目管理模式,交付效率显著提升
  10. 解决ImportError: cannot import name ‘bbox_overlaps_cython‘
  11. windows10下装pytorch简单步骤和中遇见的一些问题
  12. 保护Android网络数据教程
  13. android 文字大小设计,为什么设计稿的文字大小和开发的不一致
  14. android随机抽奖代码_基于JavaScript实现抽奖系统
  15. FL Studio2020最新中文直装版水果软件
  16. aardio - 阴影渐变文字
  17. SMPTE ST 2110 概论(二)
  18. php 报文 数据格式,http报文格式详解
  19. IFTTT Evernote 自动生成笔记
  20. 专业的数据恢复软件免费试用,效果杠杠的

热门文章

  1. excel随机数_用Excel做个随机点名
  2. wpf 资源字典中定义FontFamily
  3. 以TTX连萌来多层次分析游戏破解
  4. android 探究marginLeft、marginStart、marginRight、marginEnd
  5. linux文件循环备份,linux下的文件备份(未完待续)
  6. android radiobutton 点击效果,Android RadioButton 的点击效果
  7. 理解BFC、IFC、GFC、FFC
  8. 跑鞋东东-上海ASICS
  9. dedecms标签三 : 文章模板常用标签
  10. Linux主机名命名规范