脚本桥接和生成Microsoft Word中的头文件(Scripting bridge and ge

2019-08-17 11:20发布

我试图让一个Cocoa应用程序连接到Microsoft Word,并从我的搜索似乎是唯一的办法,就是使用脚本桥和生成字头文件。 但是,使用这种方法在苹果示例项目说明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”枚举:缺少必需的“名称” attribute.quote

从谷歌进一步的搜索,我发现在苹果论坛下面的讨论: 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数据/信息。

Answer 1:

所以,我发现了如何“解决”这个问题为Microsoft Word 2011的Mac,我真的不喜欢它,但它似乎工作。 “解决方案”是基于我联系的讨论:

该命令在创建规则运行,就像苹果所示例描述和展示(见我的第一个链接的评论)。

  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" cat word.sdef | sdp -fh -o "$DERIVED_FILES_DIR" --basename "$INPUT_FILE_BASE"
  6. 微软Word.h文件现在生成的,并且可以使用。

我不喜欢这个解决办法,因为你必须字符串添加到手动.sdef文件,但是,它似乎工作。

我将其标记为正确的答案,因为它解决了问题,但如果任何人有更好的解决方案做出来。



文章来源: Scripting bridge and generate Microsoft Word header file