2

这是我在这里的第一个问题,请多多包涵。

我有一个aspose.words.Document带有邮件合并字段的对象。我需要多次更改其中一个字段。据我所知,一旦您使用 更改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()在原始文档上使用创建第二个独立对象。有了这个,我不需要第二次添加那些耗时的代码块,但我也没有计算或深入研究这种deepClone()方法的性能。我会在深入研究后添加该信息。

长话短说,我想问的是,我可以在更改 MailMerge 字段后更新它。如果不是这样,是否有更好的解决方法?

4

1 回答 1

0

据我所知,一旦您使用 Document.getMailMerge().execute 更改 MailMerge 字段,该字段将变为纯文本并不再是字段。

是的你是对的。执行邮件合并后,这些字段将填充数据。

我可以在更改 MailMerge 字段后更新它吗?如果不是这样,是否有更好的解决方法

如果您想对同一个文档多次执行邮件合并,您可以在合并之前再次准备文档,或者创建一个克隆。但是,与每次合并之前克隆它相比,准备一次文档更快。

请查看如何在邮件合并期间生成多个文档

披露:我是 Aspose 的开发人员。

于 2014-09-24T09:00:42.510 回答