使用 VBA 或 VSTO 从 PowerPoint 演示文稿中提取嵌入式 pdf
Extract embedded pdf from PowerPoint presentation using VBA or VSTO
我需要提取 PowerPoint 文件中嵌入的(无链接)pdf 文档。我可以使用 ActiveSheet.OLEObjects 从 Excel 中提取嵌入文件并检查 ProgID。然后我将它复制到剪贴板并按照描述保存 here
但出于某种原因,我在 PowerPoint 中找不到等同于 Excel.OleObject 的内容。我认为最接近的是 shape.OLEFormat.Object
属性 但它不支持 Copy 方法。我检查了 this 但如果可能的话,我需要一个 VBA 解决方案。
您需要做的是使用 DoVerb 打开嵌入的 PDF:
ActivePresentation.Slides(1).Shapes(1).OLEFormat.DoVerb
从那里开始,您将根据安装的软件解决使用 SendKeys 保存文件的问题,或者如果可用的话,API 在 Adobe Reader.
上
有关此问题的完整讨论,请阅读 MSDN 论坛上的主题:
https://social.msdn.microsoft.com/Forums/en-US/235dde1a-13bb-4f07-8eb4-04ef1121a747/export-a-pdf-file-from-powerpoint-with-vba?forum=officegeneral
我无意中注意到复制 PowerPoint 形状本身就可以完成这项工作。
我需要提取 PowerPoint 文件中嵌入的(无链接)pdf 文档。我可以使用 ActiveSheet.OLEObjects 从 Excel 中提取嵌入文件并检查 ProgID。然后我将它复制到剪贴板并按照描述保存 here
但出于某种原因,我在 PowerPoint 中找不到等同于 Excel.OleObject 的内容。我认为最接近的是 shape.OLEFormat.Object
属性 但它不支持 Copy 方法。我检查了 this 但如果可能的话,我需要一个 VBA 解决方案。
您需要做的是使用 DoVerb 打开嵌入的 PDF:
ActivePresentation.Slides(1).Shapes(1).OLEFormat.DoVerb
从那里开始,您将根据安装的软件解决使用 SendKeys 保存文件的问题,或者如果可用的话,API 在 Adobe Reader.
上有关此问题的完整讨论,请阅读 MSDN 论坛上的主题: https://social.msdn.microsoft.com/Forums/en-US/235dde1a-13bb-4f07-8eb4-04ef1121a747/export-a-pdf-file-from-powerpoint-with-vba?forum=officegeneral
我无意中注意到复制 PowerPoint 形状本身就可以完成这项工作。