文档批量助手

功能:
    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 文档批量助手相关推荐

  1. mac写python3_跟我读python3文档:004_mac与python3配置

    - 本教程为python3文档解读 - 本教程面向完全型小白,只要你会在电脑上打字,那你就可以看懂. - 参考视频观看,味道更加:https://www.bilibili.com/video/av13 ...

  2. 批量处理word文件内容_word文档批量处理大师

    优秀的资源工具可以让你事半功倍! 资源下载请 回复 "领取资源"  自助领取. word文档批量处理大师软件精致,简单易用,针对性强,是特别针对Office办公软件中的Word文档 ...

  3. 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!

    亿愿Word文档批量多语言翻译-软件功能简介 [亿愿Word文档批量多语言翻译]采用目前最强大的.国际著名公司的谷歌翻译引擎,自动识别语言种类,把英文.日文.韩文.德文.法文.俄文等几十种外国语言的文 ...

  4. word文档批量转换为html格式

    有时需要将doc/docx格式的文档批量转换为html格式的网页文件,可以使用以下VBA脚本执行批量转换的操作,需要在安装了宏功能的Word中执行. 以下脚本会搜索指定目录中的doc文档,并逐个进行处 ...

  5. 如何将多个 Docx 格式 Word 文档批量转为 Doc 格式

    概要:前面我们介绍过常见的 Word 文档有多种格式,比如 Doc.Docx,并且详细介绍了如何批量将多个 Doc 格式的 Word 文档批量转为 Docx 格式文档,相信对大家都有一些的帮助.那 D ...

  6. 基于nuxt3的语雀文档批量导出

    语雀文档批量导出 快速访问 Github Blog 项目由来 语雀是一个不错的笔记与文档知识库,但是最近发现他开始割韭菜了, 知识库的公开开始收费,就想着把内容都导出自己来部署,发现并没有批量操作,a ...

  7. 文档批量统计页码工具PageAID(Word、Excel、PPT、PDF)

    文档批量统计页码工具PageAID,支持支持 Word.Excel.PPT.PDF 兼容office新旧版本格式,doc/docx,ppt/pptx,xls/xlsx,PDF 并提供完备的报价功能,是 ...

  8. 怎么同时给多个 PDF 文档批量添加自定义的文字和图片水印

    概要:为了信息安全和版权保护,给 PDF 文档添加水印是非常重要且必要的.现在很多 PDF 的阅读器都带了添加水印的功能,能给实现给单个的 PDF 文档添加水印.但如果需要批量的给一些 PDF 添加水 ...

  9. 如何同时将多个 Word、PDF、PPT、Excel、Txt 文档批量转为 JPEG、PNG、BMP 等图片格式

    概要:「我的ABC软件工具箱」提供了丰富的格式转换功能,其中就包括了文档转为图片格式.可以批量的将 Word.Excel.PPT.PDF.文本文件快速转换为JPG.PNG.BMP等常见的图片类型,可以 ...

  10. word文档批量插入图片及其文件名

    word文档批量插入图片及其文件名-宏脚本处理 Sub PicWithCaption()Dim xFileDialog As FileDialogDim xPath, xFile As Variant ...

最新文章

  1. BERT重夺多项测试第一名,改进之后性能追上XLNet,现已开源预训练模型
  2. Technical news July-11
  3. MoeCTF 2021Re部分------大佬请喝咖啡,A_game
  4. 【转】 ubuntu12.04更新源 官网和163等
  5. php 实现进制相互转换
  6. java内部类的使用
  7. js知识学习图谱,新手必看
  8. 【NOIP2010】【Luogu1179】数字统计(模拟,多位数分离)
  9. iPhone5s 等 64位真机 运行 带有百度地图等 仅支持32位系统API和SDK的问题
  10. 数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版)...
  11. 常见病饮食宜忌速查手册
  12. 液压机行业研究及十四五规划分析报告
  13. Spring Boot 整合 AWS S3协议 OSS功能 支持 七牛、阿里、Minio等一切支持S3协议的云厂商
  14. 从零开始的有刷电子调速器教程,高压大电流电调带回家
  15. 移动 网络 连mysql_中国移动MySQL数据库优化最佳实践
  16. CSS实现步骤进度条——前端每日一练
  17. css布局入门级实战之九宫格网格布局
  18. 百度地图采集员的日常被揭开:人与AI同频的样貌清晰可见
  19. 通信——大学专业课程
  20. Win10下Anaconda3上安装tensorflow教程

热门文章

  1. java机甲类回合制游戏,课内资源 - 基于java的RPG回合制游戏
  2. nginx location正则匹配规则
  3. RNA-seq——五、根据差异基因画火山图、在火山图上标记基因名
  4. python计算iv值_大数据技术 python计算IV值及使用
  5. 华为交换机常用查询命令
  6. POWER BI | 注册
  7. 微信小程序:使用VantUI组件库
  8. PS Photoshop 无法识别数位板 钢笔压力 感叹号
  9. 快速获取颜色的RGB或十六进制码(取色技巧)实战教学
  10. qlistview 自定义控件_Qt之QListView使用