使用aspose.word for java,当word里面存在多种表格、图片时执行 document.updatePageLayout()和layoutCollector.getStartPageIndex(document.getFirstChild())时效率巨慢,基本无进度条,有没有什么办法提升效率。我的目的是准确获取页面布局和页码信息

使用aspose.word for java,当word里面存在多种表格、图片时执行 document.updatePageLayout()和layoutCollector.getStartPageIndex(document.getFirstChild())时效率巨慢,基本无进度条,有没有什么办法提升效率。我的目的是准确获取页面布局和页码信息

@zchong

  • 您处理的 Word 文档大约有多少页?包含多少个表格和图片?
  • 是否每次都需要重新计算整个文档的布局,还是只需要获取特定部分(如某个表格或段落)的页码信息?
  • 您使用的 Aspose.Words for Java 版本是多少?是否已尝试使用最新版本?
  • 在调用 updatePageLayout() 前,文档是否已经进行了大量修改或动态生成内容?

版本信息:25.5
无大量修改和动态内容,文档信息总计215页。里面这种信息比较多
image.png (88.6 KB)

您好,怎么样了,生产环境问题,确实有点着急,还望给与支持,标书为客户实际标书,不便于提供原文件

@zchong

用户使用 Aspose.Words for Java 处理包含大量表格和图片的 Word 文档时,调用 updatePageLayout() 和 LayoutCollector 获取页码信息效率极慢,寻求性能优化方案。问题涉及具体 API 使用、性能瓶颈和生产环境紧急支持,属于代码辅助类性能问题。

@zchong 请您将有问题的输入文档附在这里以便我们测试。我们会进行检查并提供更多信息。

请注意,构建文档布局是一项相当复杂的任务,处理时间取决于文档的大小、复杂程度以及您方面的可用资源。

标书下载地址:标书数据仅供测试验证,切勿传播。
https://qbcp-gvb.oss-cn-beijing.aliyuncs.com/测试数据勿传播.docx?OSSAccessKeyId=LTAI5tCtLC4aWfs6ejuaRzzn&Expires=37767688137&Signature=erJlaGsKbU8ClHkhRX%2BJ5%2BlZlF8%3D

@zchong 感谢您提供的更多信息。在我这边,构建文档布局大约需要 10 秒,也就是每秒大约 20 页。我使用以下代码进行了测试:

Document doc = new Document("C:\\Temp\\in.docx");
doc.updatePageLayout();

我觉得这个表现还可以。

直接写测试类确实运行效率很快,但是如果电脑同时用4个线程进行文档加载时就会导致效率变慢,有衡量指标或者对应优化方案吗

@zchong 恐怕没有办法优化这个过程。正如前面提到的,性能取决于文档的复杂程度、大小和可用资源。很可能,当您在多线程中运行任务时,资源不足,因此文档处理性能会下降。