我使用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);
答案 0 :(得分:0)
请尝试http://www.docx4java.org/docx4j/docx4j-nightly-20130328.jar
它包含一个实验变量替换方法。根据您的问题假设documentPart和映射,您可以调用:
documentPart.variableReplace(mappings);
您不需要documentPart.setJaxbElement。
在我使用175页文档进行测试时,处理时间为1/3秒(大约快3倍)。
通过提供更多资源(更多内核,如果您想同时执行)以及更多RAM,可以最轻松地实现任何进一步的性能改进。
让我知道你的想法。