在PowerPoint应用程序中使用VBA将“ PPTX”格式文件导出为“ SVG”格式文件

时间:2019-12-11 05:34:15

标签: vba svg export powerpoint pywin32

在最新版本的PowerPoint中,“ pptx”格式的文件应能够导出为“ svg”文件或某些“ svg”文件(仅一张幻灯片到一个“ svg”文件)(该功能是2019年9月),我可以在PowerPoint应用程序中完成此操作。但是我无法使用PowerPoint应用程序中的VBA来执行此操作,但是我可以使用PowerPoint应用程序中的VBA将'pptx'格式文件导出为'png'或'jpg'或其他格式文件。 :

Sub test()

With Application.ActivePresentation.Slides(1)
    .Export "c:\Graphic\Slide1", "svg"
End With

End Sub

我得到了这个错误:

  

PowerPoint无法导出幻灯片,因为没有安装转换器   支持此文件类型。

实际上我要做的是通过python(使用pywin32模块)导出文件,代码是:

from win32com import client as wc
ppt = wc.Dispatch('PowerPoint.Application')
doc = ppt.Presentations.Open(path)
doc.Slides(1).Export(file_path, 'svg')

我遇到了同样的错误:

  

Slide.Export:PowerPoint无法导出幻灯片,因为没有   已安装的转换器支持此文件类型。

代码真的可以,因为如果我将'svg'更改为'png'或'jpg',则可以正常工作。

1 个答案:

答案 0 :(得分:0)

SVG是PowerPoint中的一种相对较新的格式,尚未将其添加到对象模型中。

作为一种解决方法,您可以导出为EMF。像SVG一样,它是矢量格式。然后使用InkScape(免费且可编写脚本)转换为SVG。