Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Powershell创建新的Powerpoint演示文稿_Powershell_Com_Powerpoint - Fatal编程技术网

如何使用Powershell创建新的Powerpoint演示文稿

如何使用Powershell创建新的Powerpoint演示文稿,powershell,com,powerpoint,Powershell,Com,Powerpoint,我正在尝试从头开始使用Powershell创建一个新的Powerpoint演示文稿,但对象模型有问题。根据我从中得到的一些代码: Add-type -AssemblyName office $Application = New-Object -ComObject powerpoint.application $application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue $slideType = "microsoft.off

我正在尝试从头开始使用Powershell创建一个新的Powerpoint演示文稿,但对象模型有问题。根据我从中得到的一些代码:

Add-type -AssemblyName office
$Application = New-Object -ComObject powerpoint.application
$application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$slideType = "microsoft.office.interop.powerpoint.ppSlideLayout" -as [type]

$blanklayout = $slideType::ppLayoutTitleOnly

$presentation = $application.Presentations.add()

$slide = $presentation.slides.addSlide(0,$blanklayout)
但收到一个错误:

Ausnahme beim Aufrufen von "AddSlide" mit 2 Argument(en):  "Typenkonflikt. (Ausnahme von HRESULT: 0x80020005 
(DISP_E_TYPEMISMATCH))"
In C:\Users\Uwe\Dropbox\Powerpoint.ps1:12 Zeichen:1
+ $slide = $presentation.slides.addSlide(0,$blanklayout)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation

如何从对象模型中获得正确的布局并添加新幻灯片?

我发现在下面的链接中引用此代码很有帮助

再看我的例子。更改值(15)将确定要插入的新幻灯片的样式

$slide = $Presentation.Slides.Add($presentation.Slides.Count + 1, 15)

我发现在下面的链接中引用此代码很有帮助

再看我的例子。更改值(15)将确定要插入的新幻灯片的样式

$slide = $Presentation.Slides.Add($presentation.Slides.Count + 1, 15)

我看到的第一件事是,您需要加载包含microsoft.office.interop.powerpoint.ppSlideLayout类型的程序集。程序集的名称是microsoft.office.interop.powerpoint。因此:

add-type -assembly microsoft.office.interop.powerpoint
要让它为我工作,我需要做的第二件事是使用Add方法而不是AddSlide方法

$slide = $presentation.slides.add(1,$blanklayout)
如果知道整数对应的布局,$blanklayout可以替换为整数。然而,像您这样使用代码更容易自我记录。15是ppLayoutLargeObject的值

第一个参数是介于1和($presentation.slides.count+1)之间的整数。如果选择的值小于最大值,则幻灯片将插入幻灯片组中的该位置,幻灯片编号增加1后,幻灯片将插入该位置。如果选择“最大”,幻灯片将添加到末尾


请注意,“Add”方法在文档中标记为内部API。可能没什么大不了的,但微软有更多理由在未来版本的Powerpoint中更改该API,而不是更改未标记为“内部”的API。使用AddSlideAPI看起来更复杂。说明您必须使用幻灯片来获取自定义布局。

我看到的第一件事是,您需要加载包含microsoft.office.interop.powerpoint.ppSlideLayout类型的程序集。程序集的名称是microsoft.office.interop.powerpoint。因此:

add-type -assembly microsoft.office.interop.powerpoint
要让它为我工作,我需要做的第二件事是使用Add方法而不是AddSlide方法

$slide = $presentation.slides.add(1,$blanklayout)
如果知道整数对应的布局,$blanklayout可以替换为整数。然而,像您这样使用代码更容易自我记录。15是ppLayoutLargeObject的值

第一个参数是介于1和($presentation.slides.count+1)之间的整数。如果选择的值小于最大值,则幻灯片将插入幻灯片组中的该位置,幻灯片编号增加1后,幻灯片将插入该位置。如果选择“最大”,幻灯片将添加到末尾

请注意,“Add”方法在文档中标记为内部API。可能没什么大不了的,但微软有更多理由在未来版本的Powerpoint中更改该API,而不是更改未标记为“内部”的API。使用AddSlideAPI看起来更复杂。上面说你必须使用幻灯片来获得自定义布局