2010-02-17 48 views
0

我想從一個(服務器)數據庫合併到Word Processing文檔中的幾個自定義字段,超出了正常的「郵件合併」字段。我沒有發現任何類似於開箱即用的API,它允許您爲自定義字段執行此操作。這看起來似乎在商業軟件中很常見,但我認爲這是蘋果Mac不在其中的另一個原因。Mac OS X:從數據庫合併

如果我爲此編寫Mac OS X/Objective-C/Cocoa應用程序,最好的方法是找到並替換RTF文件中的字符串?也許在原始的RTF? 有沒有更好的方式或格式與此合作?

+0

「......我認爲這是Mac爲何不能在那裏超越的另一個原因。」乞求近距離投票爲「主觀/議論」。 – 2010-02-17 16:58:53

回答

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. 可可讀取和寫入RTF/RTFD,和Word Doc格式本地。您可以在文本系統文檔中找到這些信息。
  2. 「從數據庫中讀取字段」非常普遍。如果你還沒有連接到數據庫(也就是說,你已經有了合併數據),那麼你需要對數據庫做更具體的描述(例如,你嘗試了什麼,如果有的話)。
  3. 一旦你有你的數據和你的模板文件,「郵件合併」基本上只是一個標記的字符串替換(如$$!FIRSTNAME!$$或其他一些可笑的獨特組合)。這很容易用NSMutableString的內置函數和for循環來處理。
  4. 如果你需要關於#3的更復雜的東西,那裏有RegEx框架。
0

您可能想查看Matt Gemmell的MGTemplateEngine,因爲它聽起來像它可能是你要找的。