我正在尝试获取 InDesign 文件中图形的详细信息。出于技术原因,我使用的是 COM。不是我最喜欢的,因为(在 StackOverflow 的其他地方讨论过)你必须花费一半的时间来铸造。在 Theory (!) 中,下面的代码片段应该可以工作。Intellisense将doc.AllGraphics显示 为返回对象。
http://www.indesignscriptingreference.com/CS3/JavaScript/Document.htm上的 CS3 脚本参考将其显示为图形数组
for (int g = 1; g <= doc.AllGraphics.Count; g++) {
InDesign.Graphic graphic = (InDesign.Graphic) doc.AllGraphics[ g ];
....
}
但是,我收到此错误消息:
无法将“System.__ComObject”类型的 COM 对象转换为接口类型“InDesign.Graphic”。此操作失败,因为 IID 为“{6AE52037-9E4E-442D-ADFC-2D492B4BCBEF}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .
我尝试使用替代构造返回一个对象,然后将其转换为Indesign.Graphic。所有都失败并出现相同的错误。我不敢相信 Adobe 错过了包括这个界面。
关于解决方案的任何建议,以便我可以获得图形内容?