我正在使用以下Powershell将PPT保存为PDF
$app = New-Object -ComObject powerpoint.application
$presentation = $app.Presentations.open($FileName,-1,$null,0) #Open filename, boolReadOnly -1 = MSOTrue, boolOpenUntitled, boolWithWindow 0 = MSOFalse
$presentation.SaveAs(($outFile).Value,32) #ppSaveAsPDF
[Void]$Presentation.Close()
[Void]$app.Quit()
[Void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($app)
它确实可以毫无问题地保存文件,但是它生成的某些文件有些大。我看了一下,在PowerPoint中,保存为PDF时可以选择使用最小尺寸: 工具中还有一些选项可以更改图像压缩:
有没有一种方法可以默认为powerpoint设置这些变量?更好的方法是在saveas命令中进行设置吗?
我还可以使用以下命令行在GhostScript上获得一些运气:
"C:\Program Files\gs\gs9.21\bin\gswin64.exe" -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=Outfile.pdf Infile.pdf
但是我真的很想避免安装ghostscript。可以使用DLL或其他方式完成此操作吗?
答案 0 :(得分:1)
您将要使用PowerPoint的ExportAsFixedFormat方法而不是SaveAs。它使您可以更好地控制结果。此MSDN文章介绍了所有参数:
您最感兴趣的是Intent。
您提到的压缩选项控制将文件另存为PPTX时PPT压缩图像的数量(以及是否),但这肯定会(如果间接)影响从PPTX创建的PDF的大小。除了调整注册表外,没有其他方法可以控制压缩设置,并且要使其正常工作,必须在启动PPT之前进行此操作。
尝试根据自己的喜好设置压缩程度,然后在此处进行检查:
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ X.0 \ PowerPoint \ Options
(其中X = 14代表Office 2010,15代表2013年,16代表2016年)
寻找一个名为AutomaticPictureCompressionDefault的DWORD;我认为这将控制压缩级别。
如果您正在使用的演示文稿已经添加了图片并且已保存至少一次,则更改压缩级别可能没有任何作用