我试图在InDesign文件中获取图形的详细信息。由于技术原因我使用COM。不是我最喜欢的,因为(在StackOverflow的其他地方讨论过),你不得不花费一半时间铸造。在理论上(!),代码片段应该可以工作。智能感知显示doc.AllGraphics返回对象。使用C#和COM提取InDesign CS4图形
在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 ];
....
}
不过,我得到这个错误信息:使用替代结构来
Unable to cast COM object of type 'System.__ComObject' to interface type 'InDesign.Graphic'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{6AE52037-9E4E-442D-ADFC-2D492B4BCBEF}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
我试着返回一个对象,然后将其转换为Indesign.Graphic。所有失败与相同的错误。我无法相信Adobe错过了包括这个接口。
有关解决方案的任何建议,以便我可以获取图形内容?
不幸的是,在XP中,虽然它重新创建了TLB,并且添加了这个作为VS2005的COM参考将其转换为InterOp DLL,但它仍然不起作用。但谢谢你的尝试。 – wilson32 2010-02-10 14:34:14
为我工作。重新命名文件后,我使用“以管理员身份运行”重新启动了InDesign CS4,并且工作正常。我不需要做indesign.exe类型的部分。 – Crispy 2015-07-09 20:48:51
因为这个解决方案,它只花了我1.5小时为我修复:)感谢回来。 – 2015-08-26 15:20:50