【问题标题】:docx4j: improve performancesdocx4j:提高性能
【发布时间】:2018-03-06 21:05:48
【问题描述】:

我正在用 docx4j 做一些测试。我需要做的是将复杂的 Word 文档(2-3 页文本、表格、项目符号列表、图像)转换为 xhtml。

我举了这个例子:https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/ConvertOutHtml.java

它工作正常,我只有 2 个问题:

  1. 覆盖一个 word 文档大约需要 30 秒。这一行占用了 95% 的计算时间:

    wordMLPackage = Docx4J.load(new java.io.File(inputfilepath));

最终目标是创建一个简单的 webapp,它可以获取 Word 文档(每次都不同)并返回 xhtml。用户不能等待这么久。有什么可以提高性能的吗?为什么需要这么长时间(例如 Tika 的速度要快数百倍)?目前我在我的笔记本 Eclipse IDE 上运行它,反正速度很快,你认为一旦运行服务器端会更好吗?

非常感谢。

【问题讨论】:

  • 请将此问题拆分为 2 个问题。我已经回答了第一个。

标签: java ms-word xhtml docx docx4j


【解决方案1】:

加载 JAXB 上下文需要时间。它通常只完成一次,所以第一次加载会很慢。也就是说,它不应该花费 30 秒!在我老化的笔记本电脑上,大约是 5 秒。

您可以启用日志记录以更深入地了解其中有多少是 JAXB 上下文初始化。

【讨论】:

  • 你的意思是不是解析文档和 JAXBing 它需要时间,而是加载 JAXB 上下文?如果 di 2 一个接一个地请求 2 个不同的 Word 文件,即使是完全不同的文件,第二个会很快吗?还是只有当我询问两次相同的文件时才快速?
  • 我只是将问题分成 2 个主题。
猜你喜欢
  • 2013-03-17
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 2021-12-18
  • 2011-05-07
  • 2016-04-19
  • 2016-10-07
  • 2011-04-08
相关资源
最近更新 更多