优化docx4j性能

时间:2013-03-27 16:55:21

标签: java docx4j

我使用docx4j 2.8.1替换word文件中的文本和徽标。现在我想提高性能,因为处理大约50个文档非常慢。建议使用哪些选项来提高docx4j的性能?

替换字符串(而不是徽标)的代码如下所示:

 String xml = XmlUtils.marshaltoString(documentPart.getJaxbElement(), true);
 HashMap<String, String> mappings = buildReplaceMap(userData);

 Object obj = XmlUtils.unmarshallFromTemplate(xml, mappings);
 documentPart.setJaxbElement(obj);

1 个答案:

答案 0 :(得分:0)

请尝试http://www.docx4java.org/docx4j/docx4j-nightly-20130328.jar

它包含一个实验变量替换方法。根据您的问题假设documentPart和映射,您可以调用:

documentPart.variableReplace(mappings);

您不需要documentPart.setJaxbElement。

在我使用175页文档进行测试时,处理时间为1/3秒(大约快3倍)。

通过提供更多资源(更多内核,如果您想同时执行)以及更多RAM,可以最轻松地实现任何进一步的性能改进。

让我知道你的想法。