2016-04-25 34 views
0

我试图使用PowerShell将PowerPoint文件转换为PDF格式,并且能够这样做。但是,我正在尝试更进一步,并通过脚本选择“最小尺寸(在线发布)”选项。PowerPoint to PDF:最小尺寸选项

是否需要为此设置属性?我猜这是$ppQualityStandard变量,但不完全确定。

编辑:这是我在用目前:

function ppt_to_pdf ($folderpath, $pptname) { 
    Add-Type -AssemblyName office 
    $ppFormatPDF = 2 
    $ppQualityStandard = 0 
    $p = New-Object -ComObject PowerPoint.Application 
    $p.Visible = [Microsoft.Office.Core.MsoTriState]::msoTrue 
    $ppt = $p.Presentations.Open("$folderpath\$pptname") 
    $ppt.SaveCopyAs("$folderpath\$pptname", 32) 
    $ppt.Close() 
    $p.Quit() 
    $p = $null 
    [gc]::collect() 
    [gc]::WaitForPendingFinalizers() 
} 
+1

PowerShell不附带与PowerPoint相关的cmdlet。除非您具体告诉我们您正在使用哪些cmdlet以及它们来自哪里,尝试了哪些命令,哪些命令不起作用,否则您可能无法获得答案。 – mklement0

+0

谢谢@ mklement0。我已经添加了当前用于将ppt转换为pdf的代码。 –

+0

您的问题主要是关于Microsoft PowerPoint的VBA(COM)API;您使用PowerShell访问该API的事实是偶然的(除非您遇到PowerShell语法问题,但似乎并非如此)。我已经为你的问题添加了标签'powerpoint-vba'。快速浏览一下https://msdn.microsoft.com/EN-US/library/office/ff744735.aspx告诉我'.SaveCopyAs'方法没有采用质量参数。事实上,您可能不得不寻找一个单独的实用程序来减小PDF的大小。 – mklement0

回答

1

我怀疑你需要使用.ExportAsFixedFormat而非.SaveCopyAs

它需要,除了其它参数之外,IntentppFixedFormatIntent类型,它可以是:

ppFixedFormatIntentScreen(= 1)

ppFixedFormatIntentPrint(= 2)

有一个其他参与者的主人。要了解更多信息,请启动PPT,进入VBA IDE并按F2键进入对象浏览器并搜索ExportAsFixedFormat

+0

++; 'ppFixedFormatIntentScreen'是默认值;在线文档位于https://msdn.microsoft.com/en-us/library/office/ff746080.aspx – mklement0

+1

@ mklement0感谢您的编辑/添加信息。 –