1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. >>文件: ppt2pdf.py
  3. >>作者: liu yang
  4. >>邮箱: liuyang0001@outlook.com
  5. >>博客: www.cnblogs.com/liu66blog
  6.  
  7. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  8.  
  9. #!/usr/bin/env python
  10. # -*- coding: utf-8 -*-
  11.  
  12. import sys, os
  13. # 调用com组件包
  14. import comtypes.client
  15.  
  16. # 第一步:得到ptr
  17. def init_powerpoint():
  18. powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
  19. powerpoint.Visible = 1
  20. return powerpoint
  21.  
  22. # 第二步:找到该路径下的所有ppt(x)文件,并将其路径添加到cwd
  23. def convert_files_in_folder(powerpoint, folder):
  24. # 将当前所有文件及文件夹添加进列表
  25. files = os.listdir(folder)
  26. print('files:',files)
  27. # 将所有以.ppt(x)结尾的文件加入cwd path
  28. pptfiles = [f for f in files if f.endswith((".ppt", ".pptx"))]
  29. for pptfile in pptfiles:
  30. # 加入判断,如果当前转换成的pdf已存在,就跳过不添加
  31. print(pptfile)
  32. if pptfile+'.pdf' in files :
  33. break
  34. # 加入cwd环境
  35. fullpath = os.path.join(cwd, pptfile)
  36. ppt_to_pdf(powerpoint, fullpath, fullpath)
  37.  
  38. #第三步:将cwd路径下转换成pdf格式
  39. def ppt_to_pdf(powerpoint, inputFileName, outputFileName, formatType = 32):
  40. # 切片取后缀是否为pdf
  41. if outputFileName[-3:] != 'pdf':
  42. outputFileName = outputFileName + ".pdf"
  43. # 调用接口进行转换
  44. deck = powerpoint.Presentations.Open(inputFileName)
  45. deck.SaveAs(outputFileName, formatType) # formatType = 32 for ppt to pdf
  46. deck.Close()
  47.  
  48. if __name__ == "__main__":
  49. # 得到PowerPoint应用的ptr
  50. powerpoint = init_powerpoint()
  51. # print(powerpoint)
  52. # 得到当前路径
  53. cwd = os.getcwd()
  54. # 打印当前路径
  55. print(cwd)
  56. # 调用powerpoit进行转换cwd path下的ppt(x)格式
  57. convert_files_in_folder(powerpoint, cwd)
  58. # 转换结束后关闭
  59. powerpoint.Quit()
  60.  
  61. # 感谢github的原作者
  62. # 该脚本源于https://github.com/jackbrookes/batch-ppt-to-pdf/blob/master/batch_ppt_to_pdf.py

[Python Study Notes]批量将ppt转换为pdf v1.0的更多相关文章

  1. [Python Study Notes]批量将wold转换为pdf

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

  2. Java使用Openoffice将word、ppt转换为PDF

    最近项目中要实现WORD的文件预览功能,我们可以通过将WORD转换成PDF或者HTML,然后通过浏览器预览. OpenOffice OpenOffice.org 是一套跨平台的办公室软件套件,能在 W ...

  3. PHP 实现 word/excel/ppt 转换为 PDF

    前段时间负责公司内部文件平台的设计,其中有一个需求是要能够在线浏览用户上传的 office 文件. 我的思路是先将 office 转换成 PDF,再通过 pdf.js 插件解析 PDF 文件,使其能在 ...

  4. 20171024xlVBA批量获取PPT\WORD\PDF页数

    Public Sub ModifyFileNames() Dim FolderPath As String Dim FileNames As Variant Dim dotPos As Long Di ...

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

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

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

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

  7. word、ppt转换为pdf

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. [Python Study Notes]匿名函数

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

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

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

随机推荐

  1. 从零开始学习前端开发 — 11、CSS3选择器

    一.基本选择器 1.* 通配符(通用选择器) 2.id选择器 3.class选择器(类选择器) 4.标签选择器(元素选择符) 5.群组选择器 (选择符1,选择符2{...}) 二.层次选择器(关系选择 ...

  2. 我在vs文本编辑中常用的快捷键----常更新

    1. Ctrl+向上键----文本向上滚动  Ctrl+向下键----文本向下滚动  Ctrl+Enter-----向下增加一行  Ctrl+Shift+Enter-------向上增加一行 2. 避 ...

  3. 一.初识java

    1.框架结构 2.main方法 3.转义符 public class Dome01 { public static void main(String[] args) {       //main方法, ...

  4. JSP页面中的pageEncoding和contentType的区别

    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> pag ...

  5. SecurityException

    摘录自http://www.cnblogs.com/haorenjie/archive/2012/09/12/2682655.html public boolean checkNetwork() { ...

  6. /dev/shm 引起的内存统计问题

    最近,有个同事问我,怎么准确地描述linux系统到底还有多少内存可供我使用.这里不扯内存碎片问题,就说剩余总量. 如下: cat /proc/meminfo MemTotal: 263796812 k ...

  7. Js DOM 详解

    DOM事件类 基本概念 DOM事件的级别 1.DOM0 element.onclick = function(){} 2.DOM2 element.addEventListener("cli ...

  8. kindeditor使用

    下载地址http://kindeditor.net/down.php @官方文档 使用步骤: 引入js <script charset="utf-8" src="r ...

  9. JavaScript基础:BOM的常见内置方法和内置对象

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. BOM的介绍 JavaScript的组成 JavaScript基础分为三 ...

  10. ios GCD将异步转换为同步

    在开发中有时需要等网络请求完成之后拿到数据做一些操作,而且有时是同时好几个网络请求同时发起.这时会有对异步操作进行更进一步控制的场景,不单网络请求,有时一些其他本地文件,多张图片处理等可能都会遇到这种 ...