Python3 文档批量助手
文档批量助手
功能:
1、将文件夹中的word文档转为pdf文档
2、将文件夹中的pdf文档转为word文档
3、批量打印文件夹中的文档
使用:
1、选择带有word(office2021及以上版本docx文件)文档的文件夹,word2pdf转为pdf文档位于此文件夹目录中的pdf文件夹中
2、选择带有pdf文档的文件夹,pdf2word转为word文档位于此文件夹目录中的word文件夹中
3、选择文件夹,批量打印文件。
注意:
word2pdf依赖office环境
pdf2word转换效果非常好
使用tkinter做了个界面,使用Pyinstaller打包成了单个exe。
依赖pywin32、pdf2word这两个库,pywin32用于word2pdf与打印功能。
源码就一个类:
import os
import time
from tkinter import Tk, StringVar, ttk, filedialog, messagebox, Frame
import win32api
import win32print
from win32com.client import Dispatch
from pdf2docx import Converterclass WU(Tk):def __init__(self):super().__init__()# 选择文件夹按钮字符串self.bt_selectDir = StringVar()self.bt_selectDir.set('选择文件夹')# 文件夹地址self.dir_path = ''# UI初始化self.ui_init()self.mainloop()def ui_init(self):# 屏幕宽度sw = self.winfo_screenwidth()# 屏幕高度sh = self.winfo_screenheight()# 窗口大小ww = 280wh = 150# 计算显示位置(垂直水平居中)x = (sw - ww) / 2y = (sh - wh) / 2self.geometry("%dx%d+%d+%d" % (ww, wh, x, y))# 标题栏self.title('文档批量工具')# 禁止缩放self.resizable(False, False)# 选择文件夹按钮ttk.Button(self,textvariable=self.bt_selectDir,command=self.select_dir).pack(pady=10)f = Frame(self)f.pack(pady=10)ttk.Button(f,text='word2pdf',command=self.run_word2pdf).grid(row=0, column=2)ttk.Button(f,text='pdf2word',command=self.run_pdf2word).grid(row=0, column=3)ttk.Button(self,text='打印',command=self.run_print).pack(pady=10)def select_dir(self):"""选择文件夹:return:"""self.dir_path = filedialog.askdirectory()if self.dir_path:messagebox.showinfo('提示', '选择成功')self.bt_selectDir.set('已选择')else:messagebox.showinfo('提示', '选择失败')self.bt_selectDir.set('选择文件夹')def run_word2pdf(self):if self.dir_path:try:os.mkdir(os.path.join(self.dir_path, 'pdf'))except FileExistsError:passfor temp in os.listdir(self.dir_path):if temp.endswith(".docx"):# win32 文件路径word_path = (self.dir_path + f'/{temp}').replace('/', '\\')pdf_path = (self.dir_path + '/pdf/' + temp[:-5] + '.pdf').replace('/', '\\')self.word2pdf(word_path, pdf_path)messagebox.showinfo('提示', '转换完成')else:messagebox.showinfo('提示', '请选择文件夹')def run_pdf2word(self):if self.dir_path:try:os.mkdir(os.path.join(self.dir_path, 'word'))except FileExistsError:passfor temp in os.listdir(self.dir_path):if temp.endswith(".pdf"):# win32 文件路径word_path = (self.dir_path + f'/{temp}').replace('/', '\\')pdf_path = (self.dir_path + '/word/' + temp[:-5] + '.docx').replace('/', '\\')self.pdf2word(word_path, pdf_path)messagebox.showinfo('提示', '转换完成')else:messagebox.showinfo('提示', '请选择文件夹')def run_print(self):if self.dir_path:documents = []# 组合文件地址for temp in os.listdir(self.dir_path):documents.append(os.path.join(self.dir_path, temp))# 打印for temp in documents:time.sleep(0.5)self.printer_loading(temp)messagebox.showinfo('提示', '打印完成')else:messagebox.showinfo('提示', '请选择文件夹')@staticmethoddef word2pdf(word_path, pdf_path):"""word转pdf:param word_path: str: word文件路径:param pdf_path: str: pdf文件路径"""word = Dispatch('Word.Application')doc = word.Documents.Open(word_path, ReadOnly=1)doc.SaveAs(pdf_path, FileFormat=17)doc.Close()word.Quit()@staticmethoddef pdf2word(pdf_path, word_path):"""word转pdf:param pdf_path: str: pdf文件路径:param word_path: str: word文件路径"""cv = Converter(pdf_path)cv.convert(word_path)cv.close()@staticmethoddef printer_loading(filename):"""打印文件:param filename: str: 文件名:return:"""win32api.ShellExecute(0,"print",filename,'/d:"%s"' % win32print.GetDefaultPrinter(),".",0)if __name__ == '__main__':WU()
Python3 文档批量助手相关推荐
- mac写python3_跟我读python3文档:004_mac与python3配置
- 本教程为python3文档解读 - 本教程面向完全型小白,只要你会在电脑上打字,那你就可以看懂. - 参考视频观看,味道更加:https://www.bilibili.com/video/av13 ...
- 批量处理word文件内容_word文档批量处理大师
优秀的资源工具可以让你事半功倍! 资源下载请 回复 "领取资源" 自助领取. word文档批量处理大师软件精致,简单易用,针对性强,是特别针对Office办公软件中的Word文档 ...
- 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!
亿愿Word文档批量多语言翻译-软件功能简介 [亿愿Word文档批量多语言翻译]采用目前最强大的.国际著名公司的谷歌翻译引擎,自动识别语言种类,把英文.日文.韩文.德文.法文.俄文等几十种外国语言的文 ...
- word文档批量转换为html格式
有时需要将doc/docx格式的文档批量转换为html格式的网页文件,可以使用以下VBA脚本执行批量转换的操作,需要在安装了宏功能的Word中执行. 以下脚本会搜索指定目录中的doc文档,并逐个进行处 ...
- 如何将多个 Docx 格式 Word 文档批量转为 Doc 格式
概要:前面我们介绍过常见的 Word 文档有多种格式,比如 Doc.Docx,并且详细介绍了如何批量将多个 Doc 格式的 Word 文档批量转为 Docx 格式文档,相信对大家都有一些的帮助.那 D ...
- 基于nuxt3的语雀文档批量导出
语雀文档批量导出 快速访问 Github Blog 项目由来 语雀是一个不错的笔记与文档知识库,但是最近发现他开始割韭菜了, 知识库的公开开始收费,就想着把内容都导出自己来部署,发现并没有批量操作,a ...
- 文档批量统计页码工具PageAID(Word、Excel、PPT、PDF)
文档批量统计页码工具PageAID,支持支持 Word.Excel.PPT.PDF 兼容office新旧版本格式,doc/docx,ppt/pptx,xls/xlsx,PDF 并提供完备的报价功能,是 ...
- 怎么同时给多个 PDF 文档批量添加自定义的文字和图片水印
概要:为了信息安全和版权保护,给 PDF 文档添加水印是非常重要且必要的.现在很多 PDF 的阅读器都带了添加水印的功能,能给实现给单个的 PDF 文档添加水印.但如果需要批量的给一些 PDF 添加水 ...
- 如何同时将多个 Word、PDF、PPT、Excel、Txt 文档批量转为 JPEG、PNG、BMP 等图片格式
概要:「我的ABC软件工具箱」提供了丰富的格式转换功能,其中就包括了文档转为图片格式.可以批量的将 Word.Excel.PPT.PDF.文本文件快速转换为JPG.PNG.BMP等常见的图片类型,可以 ...
- word文档批量插入图片及其文件名
word文档批量插入图片及其文件名-宏脚本处理 Sub PicWithCaption()Dim xFileDialog As FileDialogDim xPath, xFile As Variant ...
最新文章
- BERT重夺多项测试第一名,改进之后性能追上XLNet,现已开源预训练模型
- Technical news July-11
- MoeCTF 2021Re部分------大佬请喝咖啡,A_game
- 【转】 ubuntu12.04更新源 官网和163等
- php 实现进制相互转换
- java内部类的使用
- js知识学习图谱,新手必看
- 【NOIP2010】【Luogu1179】数字统计(模拟,多位数分离)
- iPhone5s 等 64位真机 运行 带有百度地图等 仅支持32位系统API和SDK的问题
- 数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版)...
- 常见病饮食宜忌速查手册
- 液压机行业研究及十四五规划分析报告
- Spring Boot 整合 AWS S3协议 OSS功能 支持 七牛、阿里、Minio等一切支持S3协议的云厂商
- 从零开始的有刷电子调速器教程,高压大电流电调带回家
- 移动 网络 连mysql_中国移动MySQL数据库优化最佳实践
- CSS实现步骤进度条——前端每日一练
- css布局入门级实战之九宫格网格布局
- 百度地图采集员的日常被揭开:人与AI同频的样貌清晰可见
- 通信——大学专业课程
- Win10下Anaconda3上安装tensorflow教程