0

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

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

4

2 回答 2

0

您可能想查看 Matt Gemmell 的MGTemplateEngine,因为它听起来可能就是您正在寻找的东西。

于 2010-02-18T00:04:01.653 回答
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. “从数据库中读取字段”非常笼统。如果您尚未整理出与数据库的连接(即,您已经拥有合并数据),则您需要更具体地了解数据库(即,您尝试过什么,如果有的话)。
  3. 一旦你有了你的数据和你的模板文档,“邮件合并”基本上只是一个令牌的字符串替换(比如 $$!FIRSTNAME!$$ 或其他一些可笑的独特组合)。这可以通过 NSMutableString 的内置函数和 for 循环轻松处理。
  4. 如果您需要关于#3 的更复杂的东西,那么可以使用 RegEx 框架。
于 2010-02-17T17:04:35.223 回答