用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)
用Python批处理将WORD文件转换成PDF格式
- 一、问题分析
- key words:批处理、WORD转换PDF、办公自动化
- 二、材料准备
- 三、代码实现
- ☆其他问题:日常遇到问题,整理笔记不易,欢迎交流~~~
一、问题分析
key words:批处理、WORD转换PDF、办公自动化
日常办公免不了遇到Word转PDF格式的事情,本文运用Python将某路径下的包括“.docx”和“.doc”两种格式的所有Word文档,批量转换成PDF格式,并存储于指定路径中。
二、材料准备
1、win32com模块的安装:右键“开始”,在windows powershell超管下输入如下指令:
pip install pypiwin32
库函数的安装可参考我其他文章:
《在Pycharm引入numpy、matplotlib库的一些操作记录》
2、文件准备:
三、代码实现
import os
import datetime
from win32com.client import constants, gencachedef words_to_pdfs(wordPath, pdfPath):# 输入:wordPath文档所在的路径,pdfPath存放PDF的路径# 功能:将已给wordPath中的.doc和.docx文件生成为.pdf格式的文件,并存放于pdfPath路径下。# 判断pdfPath路径是否已存在,如若不存在,则创建if not os.path.exists(pdfPath): # 判断存放PDF的文件夹是否存在os.makedirs(pdfPath) # 若PDF文件夹不存在就创建# 遍历wordPath下的.doc和.docx文件,将符合条件的文档进行转换i = 0for filename in os.listdir(wordPath):if os.path.splitext(filename)[1] == '.docx' or os.path.splitext(filename)[1] == '.doc':i += 1word_path = wordPath + '\\' + filenamepdf_path = pdfPath + '\\' + os.path.splitext(filename)[0] + '.pdf'# print(word_Path)# print(pdf_Path)print('正在转换第 {} 个文件:\n {}'.format(i, filename))try:word = gencache.EnsureDispatch('Word.Application')doc = word.Documents.Open(word_path, ReadOnly=1)doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)except Exception as e:print("转换异常,异常是:{}".format(e))word.Quit(constants.wdDoNotSaveChanges)print('本路径下一共有{}个WORD文件'.format(i))startTime_word2pdf = datetime.datetime.now() # 开始时间
if __name__ == '__main__':word_Path = r"H:\deal_office\deal_word2pdf"pdf_Path = "H:\\deal_office\\deal_word2pdf\\result"words_to_pdfs(word_Path, pdf_Path)endTime_word2pdf = datetime.datetime.now() # 结束时间
print('本次WORD转换成PDF格式一共用了:%0.2f秒' % (endTime_word2pdf - startTime_word2pdf).seconds)
运行结果如下:
☆其他问题:日常遇到问题,整理笔记不易,欢迎交流~~~
在编程的时候,我有以下代码:
###'''
for filename in os.listdir(wordPath):if os.path.splitext(filename)[1] == '.docx' or os.path.splitext(filename)[1] == '.doc':i += 1word_path = wordPath + '\\' + filenamepdf_path = pdfPath + '\\' + os.path.splitext(filename)[0] + '.pdf'# print(word_Path)# print(pdf_Path)print('正在转换第 {} 个文件:\n {}'.format(i, filename))try:word = gencache.EnsureDispatch('Word.Application')doc = word.Documents.Open(word_path, ReadOnly=1)except Exception as e:print("打开WORD文件异常,异常是:{}".format(e))try:doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)except Exception as e:print("转换异常,异常是:{}".format(e))finally:word.Quit(constants.wdDoNotSaveChanges)print('本路径下一共有{}个WORD文件'.format(i))
###'''
点击运行的时候,一直报错,如下图:运行的时候有问题,但是调试就能成功。
后来查询资料得知,try…except…finally有时候不能连续使用,可以了解一下堆栈的问题,反复用栈,会大才小用,容易报错。
注:根据读者提醒,现已更新为某word在读取转换后立刻将其关闭。
用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)相关推荐
- Acrobat如何将word文件转换成pdf格式
很多朋友电脑装了Adobe Acrobat,却不知道Acrobat如何将word文件转换成pdf格式,现在就给大家讲解一下.比如,我们电脑安装Adobe Acrobat Professional 7 ...
- 将word文件转换成PDF的两种方法
由于工作需要,使用了两种方式实现了word文件转PDF的功能.以下的程序是我使用VB6编写,供大家参考. 第一种方法,使用PDFMAKERAPILib,使用这种方法,可以设置文件的安全性.这种方式是A ...
- Word怎么转换成PDF格式的文件
Word怎么转换成PDF格式的文件?现在很多办公室都会接触到类似的问题,对于普通员工来说,领导说什么就是什么,领导让怎么做就得怎么做.小编每天都是各种资料和报告,领导前几日有发了不少Word文件让我想 ...
- 和doc的区别怎么转换手机_如何把doc文件转换成PDF格式?高手告诉你应该这么做...
视频步骤: 知乎视频www.zhihu.com 有时候老师让交的实验报告文件格式必须为PDF格式,因为PDF与不同的操作系统和软件版本具有很好的兼容性,所以大多数人都喜欢将Word转换成PDF.但有 ...
- react在线浏览doc_如何把doc文件转换成PDF格式?教你一招秒实现
有时候老师让交的实验报告文件格式必须为PDF格式,因为PDF与不同的操作系统和软件版本具有很好的兼容性,所以大多数人都喜欢将Word转换成PDF.但有的同学的Word版本不能直接将doc文件转换成PD ...
- 两种将ppt文件转换成pdf格式的方法
对于常接触办公文档的童鞋们来说,应该对pdf文件并不陌生吧,pdf具有跨平台.稳定性.安全性阅读良好等优势,正因为如此,许多企业将pdf作为一种重要的文档因为工作需求常常需要将编辑好的ppt转换成pd ...
- cad导出pdf_如何使用CAD手机看图软件将DWG格式图纸文件转换成PDF格式?
在使用CAD手机看图软件修改好CAD图纸后想要发送给其他人,怎么将手机中DWG格式图纸文件转换成PDF格式呢?接下来就给大家介绍一下CAD手机看图软件浩辰CAD看图王手机版中将DWG格式图纸文件转换成 ...
- cad导出pdf_如何将cad文件转换成pdf格式?
据说,有人想要将cad文件转换格式,说是想要转成pdf格式的. 请问那个人在哪里,我想找他好好聊一聊,毕竟小编我有的是方法! 有些文件格式转换器,可能很难将cad的文件转成PDF格式,所以这里建议大家 ...
- 如何将CAJ文件转换成PDF格式?分享两种实用的方法
CAJ是一种特定的文献格式,通常用于中国学术期刊和学位论文等.在学习生活中我们查阅一些文献资料,一些权威文献报刊通常情况下都是CAJ文件格式,打开它需要使用专业的阅读工具 ,这时候就需要将它转换成PD ...
最新文章
- C#精髓【月儿原创】第一讲 使用垃圾回收器
- Vue单文件组件环境配置
- 网络编程——sockaddr 与 sockaddr_in
- 2021年度训练联盟热身训练赛第一场 E Early Orders 思维 + 栈
- M. Monster Hunter(树形dp)
- int指针初始化_C++:变量,指针,引用const,extern,using,typedef,decltype关键字
- 环回测试能够提供什么信息_VIAVI | 全面对比“真双向分析”与“环回测试”,结果一目了然!...
- 去除lcd图片的摩尔纹_送上妊娠纹的最强攻略!几十款热门产品大测评!
- vs2005 编码转换后编译的时候会出错,”error c101008a“,处理方法
- SQL递归查询(with cte as)
- 2014年黑金FPGA原创教程规划发布
- [RK3288][Android6.0] 音频输入接口Mic In和Line In
- 我男友是个学霸,你们输给DOTA,我输给代码……
- html获取当前网页ip和端口,js获取当前访问者的IP地址和所属地市代码
- 如何下载网页上的视频?
- 华为android内存扩大,安卓手机运行内存越来越不够用,华为却放出了这一招来解决!...
- vb雅西高速计算机考试,2016年高中信息技术学业水平考试VB程序复习题.doc
- 中英文翻译功能 php,PHP微信开发之翻译功能
- 阿里云2017年度贡献者荣誉榜出炉
- xpath的extract()方法