本文代码,由原ppt2pdf.py进行改写

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>>文件: word2pdf.py
>>作者: liu yang
>>邮箱: liuyang0001@outlook.com
>>博客: www.cnblogs.com/liu66blog ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #!/usr/bin/env python
# -*- coding: utf-8 -*- import sys, os
# 调用com组件包
import comtypes.client def init_word():
word = comtypes.client.CreateObject("Word.Application")
word.Visible = 1
return word # 第二步:找到该路径下的所有doc(x)文件,并将其路径添加到cwd
def convert_files_in_folder(word, folder):
# 将当前所有文件及文件夹添加进列表
files = os.listdir(folder)
# print('files:',files)
# 将所有以.doc(x)结尾的文件加入cwd path
pptfiles = [f for f in files if f.endswith((".doc", ".docx"))]
for pptfile in pptfiles:
# 加入判断,如果当前转换成的pdf已存在,就跳过不添加
print(pptfile)
if pptfile+'.pdf' in files :
break
# 加入cwd环境
fullpath = os.path.join(cwd, pptfile)
ppt_to_pdf(word, fullpath, fullpath) #第三步:将cwd路径下转换成pdf格式
def ppt_to_pdf(word, inputFileName, outputFileName, formatType = 17):
# 切片取后缀是否为pdf
if outputFileName[-3:] != 'pdf':
outputFileName = outputFileName + ".pdf"
# 调用接口进行转换
print(inputFileName)
deck = word.Documents.Open(inputFileName)
deck.SaveAs(outputFileName, formatType) # formatType = 17 for word to pdf
deck.Close() if __name__ == "__main__":
# 创建Word应用
word = init_word()
# 得到当前路径
cwd = os.getcwd()
# 打印当前路径
print(cwd)
# 调用Word进行转换cwd path下的doc(x)格式
convert_files_in_folder(word, cwd)
# 转换结束后关闭
word.Quit()

[Python Study Notes]批量将wold转换为pdf的更多相关文章

  1. [Python Study Notes]批量将ppt转换为pdf v1.0

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  2. Python爬虫实战:将网页转换为pdf电子书

    写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 ...

  3. [Python Study Notes]物体运动检测

    基于opencv的cv2模块实现 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  4. [Python Study Notes]匿名函数

    Python 使用 lambda 来创建匿名函数. lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的.在Python中,lambda作 ...

  5. [Python Study Notes]字符串处理技巧(持续更新)

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  6. [Python Study Notes]with的使用

    在 Python 2.5 中, with 关键字被加入.它将常用的 try ... except ... finally ... 模式很方便的被复用.看一个最经典的例子: with open('fil ...

  7. [Python Study Notes]实现对键盘控制与监控

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  8. [Python Study Notes]实现对鼠标控制

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  9. [Python Study Notes]WdSaveFormat 枚举

    WdSaveFormat 枚举 指定要在保存文档时使用的格式. 版本信息 已添加版本: 名称 值 说明 wdFormatDocument 0 Microsoft Word 格式. wdFormatDO ...

随机推荐

  1. React Native学习(七)—— FlatList实现横向滑动列表效果

    本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-D ...

  2. How to find missing USB Records?

    In my previously article "EnCase missed some USB activities in the evidence files", I ment ...

  3. cobol

    过程部的语句一般从B区开始书写. ACCEPT A,B (x)       DISPLAY T1,T2.(O)显示在一行上 DISPLAY  T1 DISPLAY  T2 (O)显示在两行上 read ...

  4. ios开发-第二天

    1.#import可保证无论头文件出现多少次,只包含一次,而#include相反. 2.如果用户不提供文件路径的话,那么argc的值为1,可以用来做是否错误的判断. 3.面向对象和面向过程的区别 面向 ...

  5. NSDate的常用用法

    1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 + (id)date; 返回当前时间 + (id)dateWithTimeIntervalSinceNow:(NSTimeInter ...

  6. 开源纯C#工控网关+组态软件(八)表达式编译器

    一.   引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning ...

  7. Linuxc - Makefile完成项目的管理。

    Makefile完成项目的管理. root@jiqing-virtual-machine:~/cspace/les2# ls main.c Makefile max.c max.h min.c min ...

  8. EL表达式遍历Map集合

    <% Map<String,String> map2 = new HashMap(); map2.put("a","hello world") ...

  9. 转:Python之路,Day6 - 面向对象学习

    这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html   本节内容:   面向对象编程介绍 为什么要用面向对象进 ...

  10. Java 线程和多线程执行过程分析

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...