2016-04-25 61 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感謝您的編輯/添加信息。 –