通过comtypes保存Powerpoint演示文稿时,如何访问可用的文件格式常量?在
在下面的示例中,32
被用作格式,但我想使用列出的常量here),或者至少找到一个文档列表,其中包含每个常量的值。在
对于Word,有一个list,它也包含每个常量的值。在
import comtypes.client
powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
pres = powerpoint.Presentations.Open(input_path)
pres.SaveAs(output_path, 32)
您可以访问与通过
comtypes.client.Constants()
类加载的COM对象相关联的所有枚举名称;将其传递给PowerPoint应用程序您创建的COM对象:Constants
实例加载底层类型库并将属性查找动态转换为typelib访问。由于某些模糊的原因,comtypes
文档中没有包含它,即使{a1}。在另一个选项是访问generated type library中生成模块的属性,如shown in the Properties with arguments (named properties) section。这将允许您访问与powerpointidl关联的任何常量,包括自动完成支持ide(一旦通过访问PowerPoint应用程序第一次反对)。在
如果在所创建的对象上公开了类型信息,
CreateObject()
将自动生成该模块;'Powerpoint.Application'
的情况肯定是这样,因为您没有显式地设置接口。只有在有可用的类型信息时,自动界面选择才有效。在枚举名称将添加到顶层生成的模块中,因此直接使用这些名称:
^{pr2}$类型库的短名称可以在VBA对象浏览器中找到;Steve Rindsberg's answer中的屏幕截图显示了
PpSaveAsFileType
枚举的PowerPoint
。{{I}与文档中使用的名称相同。在你也可以使用类型库的GUID,加上版本号,但是如果你必须手工输入的话,那就不太容易了。在
如果需要提醒,或者只需参考Microsoft文档,可以使用
from comtypes.gen import PowerPoint; help(PowerPoint)
查看定义了哪些名称。在这两种方法都避免了使用幻数;类型库定义本身为您提供了符号名称。在
如果找到任何使用}属性。在
win32com
的代码示例,那么使用win32com.client.constants
属性将直接转换为comtypes.client.Constant(...)
或{我无法访问Windows安装程序来实际测试这些内容,我是从阅读文档和
comtypes
的源代码中提取信息的。假设您有一份PowerPoint副本,请启动它,按ALT+F11打开VBA编辑器,按F2打开对象浏览器,然后搜索“另存为”以获取此列表。单击任意一个常量名称,可以在对话框底部查看该常量的值。在
以下是Microsoft的列表,其中包含每个常量的值:
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.ppsaveasfiletype
相关问题 更多 >
编程相关推荐