python完成文件夹批量word转pdf文件及pdf文件合并+word文件合并
前言:有同学问我,如何把文件夹中的文件一次性完成打印,由于文件太多,单个打印着实麻烦。这些文件主要有三种类型,分别为PDF,word(.doc和.docx),我决定把他们全部变为PDF文件,然后再合并所有的pdf文件为一个PDF文件,分两个步骤完成!
1.把所有word转化为PDF
from win32com.client import Dispatch
import ospdfRoot = "D:\Desktop\wordToPDF\pdf" #保存pdf结果的文件夹
wordRoot = "D:\Desktop\wordToPDF\word" #读取word的文件夹def doc2pdf(filePath, file):print("正在转换:",file)word = Dispatch('Word.Application')doc = word.Documents.Open(filePath)outFile = pdfRoot +"\\"+ file.split('.')[0] + ".pdf" #生成pdf文件路径名称doc.SaveAs(outFile, FileFormat=17)doc.Close()word.Quit()if __name__ == "__main__":filelist = os.listdir(wordRoot)for file in filelist:if (file.endswith(".doc") or file.endswith(".docx")) and ("~$" not in file):filePath = wordRoot+"\\"+filedoc2pdf(filePath, file)print ("所有word文件转PDF文件已完成!!!")
2.合并所有PDF文件
from PyPDF2 import PdfFileMerger
import ospdfRoot = "D:\Desktop\wordToPDF\pdf" #保存pdf结果的文件夹
merger = PdfFileMerger() #调用PDF文件合并模块
filelist=os.listdir(pdfRoot) #读取文件夹所有文件
for file in filelist:if file.endswith(".pdf"):merger.append(pdfRoot+"\\"+file)#合并PDF文件
merger.write("result.pdf") #写入PDF文件
3.多个word文件合并
from os.path import abspath
from win32com import client
import oswordRoot = "D:\Desktop\Ada\word" #读取word的文件夹
final_docx = r"D:\Desktop\Ada\result\word文件合并结果2.docx"
files = list()
filelist = os.listdir(wordRoot)
for file in filelist:if (file.endswith(".doc") or file.endswith(".docx")) and ("~$" not in file):filePath = wordRoot+"\\"+filefiles.append(filePath)
# 启动word应用程序
word = client.gencache.EnsureDispatch("Word.Application")
word.Visible = True
# 新建空白文档
new_document = word.Documents.Add()for fn in files[::-1]:print ("正在合并:", fn)fn = abspath(fn)new_document.Application.Selection.Range.InsertFile(fn)
# 保存最终文件,关闭Word应用程序
new_document.SaveAs(final_docx)
new_document.Close()
word.Quit()
python完成文件夹批量word转pdf文件及pdf文件合并+word文件合并相关推荐
- 机器学习快速截图工具matlab版本——文件夹批量处理(原创)
简要说明: 1.打开文件夹后,遍历所有JPG格式图片,在同目录下新建一个CROP的文件夹存放裁剪的图片. 2.对每张图片, (1)初步框选你要裁剪的矩形框,会自动以你框选的左上点为起点,裁剪大小为长宽 ...
- mac 批量清空文件夹文件_【XSS 聚宝瓶】文件及文件夹批量改名工具
置顶公众号,否则不能及时收到新文章 推荐给朋友,让朋友也能收到免费文章 在公众号发送函数或应用的关键字,即可免费获取对应教程 一.功能说明我们在日常办公的时候,经常会碰到文件名不规范,想要整理很不方便 ...
- 文件夹批量改名,将文件夹名称小写字母转为大写字母
大家在工作中有没有遇到一种情况,大量的文件夹名称英文字母大小写不统一,为了美观方便好整理就一定要对文件夹名称进行统一大写或者统一小写,那么今天小编就分享一个方法教大家批量改名. 第一步,运行[文件批量 ...
- 【BAT-表姐御用03MD(ren)命令】文件夹批量创建/命名/改名
01.语法解释:cmd输入以下指令可查询 MD /? 02.创建一个表格文件,A列写入MD,B列写入需要命名的文件名 03.创建txt文本文件,把表格内容复制到里面去,再点击编码,把默认的UTF-8改 ...
- (BAT批处理)如何穿透多个文件夹批量修改文件后缀名?
如何穿透多个文件夹批量修改文件后缀名?也就是不打开文件夹,直接修改.re批处理命令不知道怎么穿透文件夹. 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据:以下代码复制粘贴到记事本,另存为xx.b ...
- 文件夹批量改名,如何在文件夹改名后恢复成原来名称。
很多人都知道要如何给文件夹进行重命名,但是如何在文件夹改名后恢复成原来名称?要如何操作?今天就由小编来给大家分享一下我平常的操作步骤. 首先,进入文件夹批量改名高手主页面,并在板块栏里选择" ...
- 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹
如果文件夹1(大)的里面包含了与文件夹2(小)的同名图片: # !/usr/bin/env python # encoding: utf-8import os import glob from PIL ...
- mac同步linux文件夹在哪里设置,Linux和Mac上的一些特殊文件将不再同步
近日有用户报告, Mac/Linux上创建的某些文件, 无法成功同步到Windows平台上. 我们对这个问题进行了修正. 这个修正可能会影响到Linux和Mac用户中的极少数, 大概为数百位用户. ...
- html有几个文件夹,关于webpack打包问题,怎么打包成多个文件夹,每个文件夹下有相应的html,js和css?...
用vue-cli创建的工程,默认webpack配置是打包成单文件,现在有个需求是打包出很多文件夹,其相对应的html,js和css在不同文件夹下,自己修改了一些配置,改为多chunk形式,html被单 ...
- android 短信数据库在哪个文件夹,安卓手机的短信备份后存到了哪个文件夹下
打开备份短信的方法: 1.通过电脑找回手机短信内容的最基本思路,即将保存手机短信容的数据库文件传输到电信上,用相关手机信看工具进找回,对此需要借助第三方ROOt工获取手机ROOT权限. 2.并非所有手 ...
最新文章
- shell处理curl返回数据_shell神器curl用法笔记
- 多个线程访问统一对象的不同方法_不会多线程还想进BAT?精选19道多线程面试题,有答案边看边学...
- 【渝粤题库】陕西师范大学300011 历史文献学
- plsql查询乱码问题解决
- 1207.1——C语言 函数
- 剑指offer:序列化二叉(前序遍历+层次)
- Kafka安装及部署
- POJ3069 Saruman's Army【贪心】
- hdu 4318 Power transmission 临接表 广搜 多校联合赛(二) 第九题
- a标签传值到另一个页面_用大头儿子和小头爸爸举例,就讲明白 vue 中父子组件的传值? | 原力计划...
- R中安装rgl时“configure: error: missing required library GL”错误的解决方法
- kettle 通过java实现正态分布密度函数调用
- 局域网内的ARP断网攻击
- Java获取本月有多少天
- css+html 嵌套表格做简单网页
- 安卓导入项目遇到“Sync Android SDKs”
- 锦鲤信小呆翻车!一手好牌打得稀烂背后:靠运气赚来的,终究会凭实力亏掉...
- Debian备份与还原
- 要想成为一个优秀的测试工程师,需要具备哪些知识和经验?
- xlsx VLOOKUP 怎么用