我使用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);发布于 2013-03-28 17:46:01
请尝试http://www.docx4java.org/docx4j/docx4j-nightly-20130328.jar
它包含一个实验性的variableReplace方法。根据您的问题假设documentPart和映射,您可以调用:
documentPart.variableReplace(mappings);你不需要documentPart.setJaxbElement。
在我对175页文档的测试中,处理花费了1/3秒(大约快了3倍)。
任何进一步的性能改进都很容易通过提供更多的资源(更多的内核,如果你想并发的话)和更多的RAM来实现。
让我知道你的想法。
https://stackoverflow.com/questions/15664726
复制相似问题