macos - 脚本桥接并生成 Microsoft Word 头文件

标签 macos cocoa ms-word scripting-bridge

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

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

不生成可用的word头文件,我得到以下信息:

sdp: enumerator of enumeration "e183": missing required "name" attribute.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 发送和获取数据/信息。

最佳答案

所以我找到了如何“解决”Microsoft Word 2011 for Mac 的此问题,我不太喜欢它,但它似乎有效。 “解决方案”基于我链接的讨论:

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

  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 文件并可以使用。

我不喜欢这个解决方案,因为您必须手动将字符串添加到 .sdef 文件中,但是,它似乎有效。

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

关于macos - 脚本桥接并生成 Microsoft Word 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338454/

相关文章:

iphone - NSString 比较特殊字符无关

macos - 删除不会失效,直到保存: is it true?

vba - 如何使用VBA宏附加到Word文档

python - 名称错误 : name 'WD_COLOR_INDEX' is not defined while using python-docx

cocoa - Apple 红外 Remote 编程

java - 苹果系统。无法识别 OpenJDK

objective-c - 将鼠标移动限制在 OS X 中的区域而不会抖动

cocoa - 如何在 Cocoa 中将控件绑定(bind)到单例?

excel - 使用 VBA 从 Excel 创建 WordDoc 时如何将替换文本设置为项目符号格式

python - 如何在点图中设置固定深度级别