2014-09-23 38 views
2

這是我的第一個問題,請耐心等待。在aspose.words.Document.getMailMerge()後更新mailmerge字段。execute

我有一個aspose.words.Document對象與mailmerge字段。我需要多次更改其中一個字段。據我所知,一旦你改變了MailMerge字段Document.getMailMerge().execute,該字段變成純文本,並停止成爲一個字段。那是因爲當我用不同的值再次使用這些代碼行時,它再次不起作用。

doc.getMailMerge().execute(
       new String[] { "title", "name", "address", "telephone", "fax", "date" }, 

       new Object[] { "Some title", "some name", "some address", "some telephone", "some fax", "some date" }); 

我有兩種解決這個問題,我現在面臨:

其一是我再創建一個Document對象,並把該對象通過所有的階段我原來Document對象除了doc.MailMerge().execute相。然而,在MailMerge階段之前的階段花費很多時間(對於大文檔),可以用分鐘來衡量,所以我不想把時間加倍。我使用了一個性能工具。

其次是在第一次使用MailMerge()之前,我在原始文檔上使用Document.deepClone()來創建第二個獨立對象。有了這個,我不需要再次添加這些耗時的代碼塊,但我也沒有深入計算或深入搜索這種方法的性能。在我深入瞭解之後,我會添加這些信息。

長話短說我想問的是,我可以在更改後更新MailMerge字段。如果不是這樣,是否有更好的解決方法呢?

回答

0

據我所知,一旦用Document.getMailMerge().exe執行更改MailMerge字段,該字段將變爲純文本並停止爲字段。

是的,你說得對。執行郵件合併後,這些字段將填充數據。

我可以在更改它後更新MailMerge字段。如果不是這樣,是有這個

一個更好的解決辦法。如果要執行對同一文檔多次郵件合併,您可以將其合併之前準備的文件,或者創建一個克隆。但是,準備一次文檔並在每次合併之前克隆文檔會更快。請致電How to Produce Multiple Documents during Mail Merge

披露:我是Aspose的開發人員。

+0

感謝您的快速回復。如果我沒有弄錯你提供的更好的解決方案,與我的第二個解決方法非常相似。其實我也遇到過你在上面分享的鏈接,並且這個鏈接:clone document vs prepare document again這個鏈接與克隆文檔的速度相同。 – halil 2014-09-24 12:47:26

+0

即使您已經在磁盤上的某處準備好了合併文檔。與每次合併重新加載文檔相比,克隆文檔的速度更快。 – Saqib 2014-09-24 12:52:48