批量生成 PowerPoint 演示文稿缩略图
去年说过一回 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 演示文稿缩略图相关推荐
- 优秀课件笔记之POWERPOINT 演示文稿
1.本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记) 2.任课教师不会提供参考文献,所以只能对作者表示感谢,如果引用了您的作品,可以用回 复方式补充参考文献. 3.我不对文章 ...
- 文档处理教程:使用C#在PowerPoint演示文稿中创建图表
图表用于汇总和直观表示PowerPoint演示文稿中的数据.因此,PowerPoint提供了多种图表类型以可视化数据.其中,最常用的图表类型包括饼图,折线图,条形图,直方图,股票图等.在本文中,将学习 ...
- powerpoint转换器_如何将PowerPoint演示文稿转换为主题演讲
powerpoint转换器 If someone sends you a Microsoft PowerPoint presentation, but you'd rather use Apple's ...
- 如何在PowerPoint演示文稿中使用iTunes音乐
One of PowerPoint's charms is its ability to play music during the presentation. Adding music to you ...
- 如何将音乐添加到PowerPoint演示文稿
There are many ways to improve your PowerPoint presentation-adding animations to objects, customizin ...
- Aspose.Slides使用教程:使用 C# 在 PowerPoint 演示文稿中添加页眉和页脚
目录 在 PowerPoint 中管理页眉和页脚的 .NET API 使用 C# 管理讲义和备注幻灯片中的页眉和页脚 更改备注幻灯片的页眉和页脚设置 PowerPoint 演示文稿中的页眉和页脚用于显 ...
- PPT处理控件Aspose.Slides功能演示:使用 C# 在 PowerPoint 演示文稿中创建 SmartArt
演示文稿中的 SmartArt 用于以视觉形式提供信息.有时,选择使简单的文本更具吸引力.而在其他情况下,它用于演示流程图.流程.不同实体之间的关系等.下面将介绍如何使用 C# 以编程方式在 Powe ...
- Aspose.Slides使用教程:使用 C++ 在 PowerPoint 演示文稿中添加幻灯片切换
目录 用于在 PowerPoint 演示文稿中添加过渡的 C++ API 使用 C++ 添加幻灯片过渡 使用 C++ 添加高级幻灯片过渡 在 PowerPoint 演示文稿中设置变形过渡类型 在 Mi ...
- 在Authorware中插入PowerPoint演示文稿的实现方法
2019独角兽企业重金招聘Python工程师标准>>> 日常生活中,我们在制作多媒体课件的时候一般都会应用到PowerPoint以及Authorware这两款软件.在PowerPoi ...
最新文章
- 【蓝桥java】递归基础之输出连续数字
- 全球比特币和区块链领域创业企业全景图
- HTTP协议1之协议详解--转
- .Net思想篇:为何我们需要思想大洗礼?
- ubuntu 添加用户、用户组
- python可视化分析网易云音乐评论_网易云音乐热门评论api分析
- python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
- 华为Mate X国行售价曝光,5G网速实测,强悍!
- 工时管理php,现场管理:标准工时和产能如何计算
- 5G千兆无线路由器,国产工业级稳定通信
- nn.Sigmoid torch
- 智慧农业系统开发功能有哪些?
- 惠州电子计算机职业学校,惠州市十大中专学校排名
- 基金21年发展极简史
- ETest半实物仿真测试在汽车电子电器系统中的应用
- C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)
- 《R语言与数据挖掘》⑥-⑦分类与预测建模【分类算法评价】
- 一文彻底搞懂ROC曲线与AUC的概念
- 计算机专业中的一些术语
- 解决 soctherm: OC ALARM 0x00000001 错误
热门文章
- Android扫码枪无输入框获取扫码内容(或者Android自助机获取扫码内容)
- 单例模式之饿汉和懒汉(java)
- ES6 - 不改变原数组的方法
- react实现贪吃蛇
- 区块链系统其实是一个分布式数据库系统
- 013 Cadence IC Virtuoso简介
- windows电脑文件传输至ipad/iphone
- 北航学生因海淘填写学校地址遭惩罚!美国「制裁清单」影响开始深入校园!
- ubuntu启动失败/dev/sda1 ** :clean, **/*** files,***/*** blocks
- python爬取和平精英皮肤_20行Python代码爬取王者荣耀全英雄皮肤