在使用LayoutCollector 时,效率特别差,请问有什么好的方法吗?

public static int getNodeSpan(LayoutCollector layoutCollector, Node node) {
    // 跨行
    int span = 0;
    try {
        span = layoutCollector.getNumPagesSpanned(node);
    } catch (Exception e) {
        log.error("获取节点跨页数失败,原因" + e.getMessage());
        return span;
    }
    return span;
}

使用上述代码,获取几百个节点是否跨页时,效率特别差,请问有什么好的方法吗

@ouchli MS Word 文档本质上是流动的,因此不存在“页面”概念。 因此,要确定节点跨越的页面数量,需要构建完整的文档布局。 根据文档的大小和复杂性,构建文档布局可能是相当耗时和资源消耗的过程。 不幸的是,除了使用“LayoutCollector”之外,没有其他方法可以确定节点跨越的页面。

请问LayoutCollector 有没有提供缓存机制,可以提高效率

@ouchli 当您创建 LayoutCollector 实例时,Aspose.Words 会构建整个文档布局并缓存它。 因此,如果您使用 LayoutCollector 的同一实例来处理文档中的所有节点,则文档布局已被缓存。