我正在尝试使用进度指示将.pptx文件转换为.mp4视频文件。我正在使用Python 2.7.6以及win32com.client模块,以便在Microsoft Powerpoint 2013中自动执行一些操作。
到目前为止,这是我的代码:
import win32com.client
powerpoint = win32com.client.Dispatch("Powerpoint.Application")
presentation = powerpoint.Presentations.Open(FileName='myFile.pptx',
WithWindow=False)
try:
# May need a few other parameters as well
presentation.CreateVideo('out.wmv')
except:
raise SystemExit
我的问题是我没有得到导出到视频的进度。我知道这些信息是可用的,因为从应用程序中导出视频时,Powerpoint本身会显示一个确切的进度条。
到目前为止我设法检索的唯一信息是轮询CreateVideoStatus
属性,该属性仅告诉我转换是否已经结束。
while presentation.CreateVideoStatus == 1:
time.sleep(1)
但是,根据这篇文章Powerpoint 2013 - Progress for export to video,用户Steve Rindsberg建议我们应该使用ResampleMediaTasks
对象及其PercentComplete()
方法来获取进度。
关于如何在Python中实现这一点的任何想法?
答案 0 :(得分:1)
要使用ResampleMediaTasks,您需要在Python中创建其COM对象,并使用它来获取对话期间的进度百分比。一个完整的例子: http://bit.ly/1iUbZKO
正如您在第8173行中所看到的,它会转换PPT文件并使用ResampleMediaTasks来获取它的进度。 您可以使用该源项目中的整个openlp包或使用它的一部分。 要下载整个项目,您需要安装BZR客户端。