脚本桥并生成Microsoft Word头文件

时间:2013-03-11 12:21:25

标签: macos cocoa ms-word scripting-bridge

我正在尝试使用Cocoa应用程序连接到Microsoft Word,而我的搜索似乎唯一的方法就是使用Scripting Bridge并生成一个单词头文件。但是,使用Apples示例项目SBSendEmail中解释的方法:

sdef "$INPUT_FILE_PATH" | sdp -fh -o "$DERIVED_FILES_DIR" --basename "$INPUT_FILE_BASE" --bundleid `defaults read "$INPUT_FILE_PATH/Contents/Info" CFBundleIdentifier`

不生成可用的单词头文件,我得到以下内容:

  

sdp:枚举枚举器“e183”:缺少必需的“名称”属性.quote

通过在Google上进一步搜索,我在Apple论坛上发现了以下讨论:https://discussions.apple.com/thread/2623068?start=0&tstart=0

虽然OP有同样的问题,但是,尝试他的工作,没有帮助,即仍然没有可用的头文件。 OP建议使用以下内容:

sdef ./Microsoft\ Word.app/ > word.sdef 
cat word.sdef | sdp -fh --basename word

所以我想知道,如果有人知道如何解决问题,或者是否有其他方式从Microsoft Word发送和获取数据/信息。

1 个答案:

答案 0 :(得分:2)

所以我发现如何“解决”Microsoft Word 2011 for Mac的这个问题,我真的不喜欢它,但它似乎有效。 “解决方案”基于我所讨论的讨论:

命令在构建规则中运行,如在Apples中所描述和显示的那样(请参阅我的第一个评论链接)。

  1. 首先使用命令sdef "$INPUT_FILE_PATH" > word.sdef(INPUT_FILE_PATH是Microsoft Word的路径,我已将其拖入XCode)
  2. 打开word.sdef文件并搜索名为e315和e183的枚举。 枚举看起来像:`
  3. e183缺少一个名称字段,所以我只是添加了一个字符串
  4. e315缺少所有名称字段,所以我添加了它们
  5. 然后使用命令cat word.sdef | sdp -fh -o "$DERIVED_FILES_DIR" --basename "$INPUT_FILE_BASE"
  6. 现在生成Microsoft Word.h文件并可以使用。
  7. 我不喜欢这个解决方案,因为你必须手动将字符串添加到.sdef文件中,但它似乎有效。

    我会将其标记为正确答案,因为它解决了问题,但如果有人有更好的解决方案,请告诉。