Mac OS X:从数据库合并

时间:2010-02-17 16:13:06

标签: objective-c database cocoa macos word-processor

我希望将(服务器)数据库中的几个自定义字段合并到Word处理文档中,超出正常的“邮件合并”字段。我没有找到任何类似开箱即用的API,允许您为自定义字段执行此操作。这似乎在商业软件中很常见,但我认为这是Mac在那里不出色的另一个原因。

如果我要为此编写Mac OS X / Objective-C / Cocoa应用程序,那么接近它的最佳方法是在RTF文件中查找和替换字符串吗?也许在原始的RTF? 有没有更好的方法或格式来处理这个问题?

2 个答案:

答案 0 :(得分:0)

没有专门的“邮件合并API”不是一个贬值者 - 它必须太具体,通常不足以成为一个API。如果你仔细考虑这个问题,就没有足够抽象的案例来证明专用的内置API。大多数人希望“将MySQL数据库中的记录合并到Word文档中”或“将来自Oracle数据库的记录合并到PDF文档中”。

然而,所有构建块都在那里构建它,并且它相对简单(伪代码):

retrieve interesting records

for each record

  load a new copy of template

  replace strings

  save modified template to a file or do whatever

  next record

有些观点:

  1. Cocoa本地读写RTF / RTFD和Word Doc格式。您可以在文本系统文档中找到此信息。
  2. “从数据库中读取字段”非常通用。如果您还没有整理出数据库的连接(即,您已经拥有合并数据),则需要更具体地了解数据库(即,您尝试过的内容,如果有的话)。< / LI>
  3. 获得数据和模板文档后,“邮件合并”基本上只是字符串替换令牌(如$$!FIRSTNAME!$$或其他一些非常独特的组合)。使用NSMutableString的内置函数和for循环可以轻松处理。
  4. 如果你需要关于#3的更复杂的东西,那里有RegEx框架。

答案 1 :(得分:0)

你可能想看看Matt Gemmell的MGTemplateEngine,因为听起来它可能就是你要找的东西。