更改presentation.saveas pdf的选项

时间:2018-06-20 20:27:44

标签: powershell pdf com powerpoint ghostscript

我正在使用以下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时可以选择使用最小尺寸: Mimimum size 工具中还有一些选项可以更改图像压缩: Compress images

有没有一种方法可以默认为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或其他方式完成此操作吗?

1 个答案:

答案 0 :(得分:1)

您将要使用PowerPoint的ExportAsFixedFormat方法而不是SaveAs。它使您可以更好地控制结果。此MSDN文章介绍了所有参数:

https://msdn.microsoft.com/en-us/VBA/PowerPoint-VBA/articles/presentation-exportasfixedformat-method-powerpoint

您最感兴趣的是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;我认为这将控制压缩级别。

如果您正在使用的演示文稿已经添加了图片并且已保存至少一次,则更改压缩级别可能没有任何作用