去年说过一回 SWF 截图的事儿 ,今年又该给 PPT(Microsoft PowerPoint 演示文稿)截图了。

测试环境:

Windows 2000 SP4, PowerPoint 2000, Windows Script 5.6

任务描述:

某文件夹中存有多个 .ppt 文件,现欲将每个 .ppt 文件的第一页保存为同一文件夹下 320*240 像素大小的 JPEG 格式图片,图片文件主文件名仍使用相应 .ppt 主文件名。

解决方案:

将以下代码复制粘贴到“记事本”,保存至该文件夹中,命名为“ppthumb.vbs”,在“我的电脑”或“资源管理器”窗口中进入该文件夹,双击“ppthumb.vbs”即可(假设当前用户具备管理员权限)。

'' 导出当前文件夹下所有 PowerPoint 演示文稿的第一张幻灯片 '' 并以图形文件格式保存在当前文件夹下 '' 变量声明和初始化 Dim wShell, pptApp, fso, folder, file, slide, outFile Set wShell = WScript.CreateObject("WScript.Shell") '' 获取当前文件夹 Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(wShell.CurrentDirectory) Set fso = Nothing 'MsgBox(folder.Path) '' 打开 PowerPoint 应用程序 Set pptApp = WScript.CreateObject("PowerPoint.Application") pptApp.Activate '' 遍历当前文件夹下所有文件 For Each file in folder.Files '' 如果文件扩展名为 ppt(根据实际需要和 PowerPoint 程序版本,还可以是 pps, pptx 等) If UCase(Mid(file.Name, InstrRev(file.Name, ".") + 1)) = "PPT" Then ' MsgBox(file.Name) '' 设置输出文件名,此处使用原演示文稿名称 outFile = Trim(Left(file.Path, InStrRev(file.Path, ".") - 1)) & ".jpg" ' MsgBox(outFile) pptApp.Presentations.Open file.Path '' 此处只需要第一张幻灯片 Set slide = pptApp.ActivePresentation.Slides(1) '' 如果需要导出多张幻灯片,使用如下循环 ' For Each slide in pptApp.ActivePresentation.Slides.Range(1) '' Export(String FileName, String FilterName, Long ScaleWidth, Long ScaleHeight) '' FilterName 可以为 gif, jpg, png, bmp, wmf, tif 等。 slide.Export outFile, "jpg", 320, 240 ' Next pptApp.Presentations(1).Close End If Next '' 退出 PowerPoint 应用程序 pptApp.Quit '' 清理对象 Set pptApp = Nothing Set wShell = Nothing

请参考注释修改代码以适应其他情况,包括但不限于处理 .pps, .pptx 等其他文件名的演示文稿,使用其他尺寸,保存成其他图片格式等。

探索过程:

第一个想法, Windows Explorer 是怎么干的?如果有相应的 API,直接拿来用就是了。但是因为不怎么会用 Google,未找到满意答案,日后再研究和/或请教吧……

第二个想法,截图软件配合自动测试软件,重复从 Explorer 里截取缩略图的键鼠动作,怎么越来越麻烦啊~~~

第三个想法,再 Google 一下吧,看看有啥批处理的妙法。结果呢,就找到了这个:新春献礼,《PPT转图片&文本》开源发布 。

刚一看这个脚本,我就想到了 HTA(看这里:Introduction to HTML Applications (HTAs) ),但是先不管这个。

该脚本功能可够强大的了,可以将 .ppt 文件的每一页都保存为图片,还可以把文字也导出来。然而我现在只想把每个 .ppt 文件的第一页保存成指定大小的图片,使用该脚本简直是牛刀杀鸡,太阿裁衣(自己编的)……于是,在参考了该脚本、Microsoft PowerPoint Visual Basic 参考(在 PowerPoint 程序的帮助里)和当初的 SWF 截图脚本以后,就得到了上文中的那个 VBScript 脚本。

更多收获:

虽是管中窥豹,我们也看到了 Microsoft Office 公开的整套 API 所能带来的便利。不单是 PowerPoint 演示文稿,Word 文档和 Excel 工作表也可以被批量处理,都不用在 Visual Studio 里建 Office Solution 那么大费周章~

批量生成 PowerPoint 演示文稿缩略图相关推荐

  1. 优秀课件笔记之POWERPOINT 演示文稿

    1.本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记) 2.任课教师不会提供参考文献,所以只能对作者表示感谢,如果引用了您的作品,可以用回 复方式补充参考文献. 3.我不对文章 ...

  2. 文档处理教程:使用C#在PowerPoint演示文稿中创建图表

    图表用于汇总和直观表示PowerPoint演示文稿中的数据.因此,PowerPoint提供了多种图表类型以可视化数据.其中,最常用的图表类型包括饼图,折线图,条形图,直方图,股票图等.在本文中,将学习 ...

  3. powerpoint转换器_如何将PowerPoint演示文稿转换为主题演讲

    powerpoint转换器 If someone sends you a Microsoft PowerPoint presentation, but you'd rather use Apple's ...

  4. 如何在PowerPoint演示文稿中使用iTunes音乐

    One of PowerPoint's charms is its ability to play music during the presentation. Adding music to you ...

  5. 如何将音乐添加到PowerPoint演示文稿

    There are many ways to improve your PowerPoint presentation-adding animations to objects, customizin ...

  6. Aspose.Slides使用教程:使用 C# 在 PowerPoint 演示文稿中添加页眉和页脚

    目录 在 PowerPoint 中管理页眉和页脚的 .NET API 使用 C# 管理讲义和备注幻灯片中的页眉和页脚 更改备注幻灯片的页眉和页脚设置 PowerPoint 演示文稿中的页眉和页脚用于显 ...

  7. PPT处理控件Aspose.Slides功能演示:使用 C# 在 PowerPoint 演示文稿中创建 SmartArt

    演示文稿中的 SmartArt 用于以视觉形式提供信息.有时,选择使简单的文本更具吸引力.而在其他情况下,它用于演示流程图.流程.不同实体之间的关系等.下面将介绍如何使用 C# 以编程方式在 Powe ...

  8. Aspose.Slides使用教程:使用 C++ 在 PowerPoint 演示文稿中添加幻灯片切换

    目录 用于在 PowerPoint 演示文稿中添加过渡的 C++ API 使用 C++ 添加幻灯片过渡 使用 C++ 添加高级幻灯片过渡 在 PowerPoint 演示文稿中设置变形过渡类型 在 Mi ...

  9. 在Authorware中插入PowerPoint演示文稿的实现方法

    2019独角兽企业重金招聘Python工程师标准>>> 日常生活中,我们在制作多媒体课件的时候一般都会应用到PowerPoint以及Authorware这两款软件.在PowerPoi ...

最新文章

  1. 【蓝桥java】递归基础之输出连续数字
  2. 全球比特币和区块链领域创业企业全景图
  3. HTTP协议1之协议详解--转
  4. .Net思想篇:为何我们需要思想大洗礼?
  5. ubuntu 添加用户、用户组
  6. python可视化分析网易云音乐评论_网易云音乐热门评论api分析
  7. python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
  8. 华为Mate X国行售价曝光,5G网速实测,强悍!
  9. 工时管理php,现场管理:标准工时和产能如何计算
  10. 5G千兆无线路由器,国产工业级稳定通信
  11. nn.Sigmoid torch
  12. 智慧农业系统开发功能有哪些?
  13. 惠州电子计算机职业学校,惠州市十大中专学校排名
  14. 基金21年发展极简史
  15. ETest半实物仿真测试在汽车电子电器系统中的应用
  16. C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)
  17. 《R语言与数据挖掘》⑥-⑦分类与预测建模【分类算法评价】
  18. 一文彻底搞懂ROC曲线与AUC的概念
  19. 计算机专业中的一些术语
  20. 解决 soctherm: OC ALARM 0x00000001 错误

热门文章

  1. Android扫码枪无输入框获取扫码内容(或者Android自助机获取扫码内容)
  2. 单例模式之饿汉和懒汉(java)
  3. ES6 - 不改变原数组的方法
  4. react实现贪吃蛇
  5. 区块链系统其实是一个分布式数据库系统
  6. 013 Cadence IC Virtuoso简介
  7. windows电脑文件传输至ipad/iphone
  8. 北航学生因海淘填写学校地址遭惩罚!美国「制裁清单」影响开始深入校园!
  9. ubuntu启动失败/dev/sda1 ** :clean, **/*** files,***/*** blocks
  10. python爬取和平精英皮肤_20行Python代码爬取王者荣耀全英雄皮肤