我正在从事一个需要将PowerPoint演示文稿导出为.mp4格式自动化的项目。我已经弄清楚了如何使用powershell将PowerPoint保存为.mp4格式,但是我找不到任何有关如何仅使用powershell更改幻灯片在屏幕上停留在屏幕上的秒数的文档。
当前代码:
$Application = New-Object -ComObject powerpoint.application
$Application.Visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$ThemePath = "C:\Users\Theme.potx"
$PPTXPath = "C:\Users\ExistingPresentation.pptx"
$SavePath = "C:\Users\MyPresentation.mp4"
$Presentation = $Application.Presentations.Open($ReportPath)
--Applies a theme for the slides
$Presentation.ApplyTemplate($ThemePath)
--Saves as a Video
$Presentation.SaveAs($SavePath, 39)
$Presentation.Close()
我要定位的目标是
编辑:我已经在Windows PowerPoint中找到一个似乎包含可用于更改其成员的类的库的库。其中之一是“ powerpoint.application”,理论上,按照Theo的建议,以下脚本应该是可能的,尽管出现错误。
$SlideShowTransition = New-Object -ComObject powerpoint.SlideShowTransition
$SlideShowTransition.AdvanceOnTime = $True
$SlideShowTransition.AdvanceTime = 10
New-Object : Retrieving the COM class factory for component with CLSID {00000000-0000-0000-0000-000000000000} failed due to the following error: 80040154 Class not
registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
At line:1 char:13
+ $Whatever = New-Object -ComObject powerpoint.SlideShowTransition
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [New-Object], COMException
+ FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand
这是直接来自环境的另一个screenshot。由于某些原因,SlideShowTransition没有显示。我可能缺少参考...?
答案 0 :(得分:0)
我认为您不应该在不使用$ Presentation的情况下创建$ SlideShowTransition,因为后者表示实际的演示文稿,否则您将无法对其进行任何设置。
请参见MS official doc上的示例如何使用ActivePresentation进行设置。
工作原理:如果在左侧搜索框中搜索ActivePresentation,则会看到它位于“应用程序”下。因此要引用它,路径是Application.ActivePresentation.Slides,然后您可以尝试Theo的方法。我认为您只有1个演示文稿处于活动状态,所以请打开。如果不是这样,您需要在文档中进行更多挖掘以激活您的$ Presentation。