我正在尝试获取 InDesign 文件中图形的详细信息。出于技术原因,我使用 COM。不是我最喜欢的,因为(在 StackOverflow 的其他地方讨论过)你必须花半生的时间来选角。理论上(!),下面的代码片段应该可以工作。智能感知显示AllGraphics 文档作为返回objects.
CS3 脚本参考位于http://www.indesignscriptingreference.com/CS3/JavaScript/Document.htm显示为图形数组
for (int g = 1; g <= doc.AllGraphics.Count; g++) {
InDesign.Graphic graphic = (InDesign.Graphic) doc.AllGraphics[ g ];
....
}
但是,我收到此错误消息:
无法转换 COM 对象类型
“System.__ComObject”到接口类型
“InDesign.Graphic”。这个操作
由于 QueryInterface 调用而失败
在接口的 COM 组件上
带独立ID
'{6AE52037-9E4E-442D-ADFC-2D492B4BCBEF}'
由于以下错误而失败:否
支持此类接口(异常
来自 HRESULT:0x80004002
(E_NOINTERFACE))。
我尝试使用替代构造返回一个对象,然后将其转换为Indesign.Graphic。全部失败并出现相同的错误。我不敢相信 Adobe 竟然错过了这个界面。
关于解决方案有什么建议,以便我可以获得图形内容吗?
我在这里运行 Win7 64 和 CS4,也有 E_NOInterface 消息。
我花了6个小时通过google、尝试和错误才解决这个问题。在我通过互联网的路上,我看到了你在这里发的帖子,然后回来给你写了一些对我有帮助的东西。
在安装过程中,Com-Object 未正确注册。为了解决这个问题
-
转到文件夹
对于CS3:%ALLUSERSPROFILE%\Adobe\InDesign\Version 5.0\Scripting Support\5.0
就我而言:C:\ProgramData\Adobe\InDesignVersion 5.0\Scripting Support\5.0
对于CS4:%ALLUSERSPROFILE%\Adobe\InDesign\Version 5.0\Scripting Support\6.0
将文件“Resources for Visual Basic.tlb”重命名为“Resources for Visual Basic.tlb.old”
以管理员身份打开命令窗口
在我的例子中,转到 indesign-FolderC:\Program Files (x86)\Adobe\Adobe InDesign CS4
-
并在命令窗口中键入以下命令启动 indesign:
indesign.exe -type
等待发射,然后就可以开始了。它使用此参数注册组件。
我找到了这个解决方案here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)