1

我正在使用 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);
4

1 回答 1

0

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

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

documentPart.variableReplace(mappings);

您不需要 documentPart.setJaxbElement。

在我对 175 页文档的测试中,处理时间为 1/3 秒(大约快 3 倍)。

任何进一步的性能改进将最容易通过提供更多资源(更多内核,如果您想同时进行)和更多 RAM 来实现。

让我知道你的想法。

于 2013-03-28T09:46:00.940 回答