请问可以获取某个节点所在的页面页码 吗?

请问可以获取某个节点所在的页面页码 吗?

@ouchli 您可以使用 LayoutCollector 来确定节点所在的页码。

你好,您所给的方案是得到节点的第几个页面。
我需要的是获取

如图的右下角页码,请问可以做到吗

@ouchli 页码使用文档页眉或页脚中的“PAGE”字段表示。 这样就可以得到PAGE字段。

怎么根据节点获取节点所在的页面中的页脚中的 PAGE 字段

@ouchli 请参阅我们的文档以了解如何使用字段:
https://docs.aspose.com/words/java/working-with-fields/

您可以使用以下代码来获取文档中的PAGE字段:

Document doc = new Document("C:\\Temp\\in.docx");
for (Field f : doc.getRange().getFields())
{
    if (f.getType() == FieldType.FIELD_PAGE)
    {
        FieldPage page = (FieldPage)f;
        // .................
    }
}

页码2.docx (56.3 KB)

使用DocumentExplorer查看文档的DOM结构,第一个section的页脚找到了FieldPage字段,但是文档中第一个section并没有设置页码

还有第二个section找到的FieldPage字段的RUN 结果为 9,请问这个9是代表的什么?

能否帮忙解释下这个文档中的页码结构?谢谢

@ouchli 在文档的第一部分中,偶数页标题中的 PAGE 字段。 页眉/页脚中的页面字段值不是 MS Word 中显示的值,因为页眉/页脚在多个页面上重复,并且 PAGE 字段为每个页面显示不同的值。

谢谢,再请问一下我如何知道页码是从哪一页开始的呢,并且开始的页码是多少

@ouchli 在 MS Word 的每个部分中,您可以指定 PageSetup.PageStartingNumber 属性,该属性指定该部分的起始页码。 此外,您还可以指定 PageSetup.RestartPageNumbering 属性,该属性指定页码是否从该部分的开头重新开始。

您好,用getPageStartingNumber这个值始终返回的是1呢

@ouchli 是的,这是预期的,因为默认情况下,MS Word 文档中的页码是连续的。 正如我已经提到的,由于其流程性质,MS Word 文档中没有“页面”概念。 消费者应用程序将文档即时重排到页面。 您可以使用 LayotuCollector 来确定某个节点开始的页面索引。 在你的情况下,节点是部分。

你好,默认情况下,MS Word 文档中的页码是连续的,但是用户可以重新对页面的页码进行编号的,这时页码就不是连续的了,那怎么去判断文档中的页码是连续的呢

@ouchli MS Word 文档本质上是流动的,因此它们没有任何有关文档布局的信息。 消费者应用程序将文档即时重排为页面。 文档重排到页面的方式取决于消费者应用程序和环境中可用的字体。 所以没有办法判断页码是否正确。

你好 请问 FieldPage字段的,getResult的值代表了什么含义呢?从我看到的资料,这个值没有任何意义

@ouchli 字段结果返回字段显示的值,即字段分隔符和字段结束之间的文本。 如果 PAGE 字段位于页眉或页脚内,则该值是动态的,并且根据页面的不同而不同。

PAGE字段位于页脚内,那不同的页面不同的值怎么可以拿到

@ouchli 能否请您附上您的文件以供我们参考? 我们将对其进行检查并为您提供更多信息。 如果需要获取某个特定节点所在的页码,您应该使用LayoutCollector

请问图中的 重新编号 属性设置,哪里可以获取到

图中的页码设置,哪里可以获取到

@ouchli 您可以使用 PageSetup.PageStartingNumber 获取或设置页面起始编号。 页码的位置可以使用段落对齐来配置。