We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

获取某个段落或Node在doc中的绝对位置

期待答疑支持。

如附件文档,想获取文件中【项目名称111】的绝对位置(结果位置是:从20到 27),可以通过什么方法

image.png (28.9 KB)

测试文件.docx (21.6 KB)

@qqdong 您可以使用 LayoutEnumerator 从文档中获取布局信息。 文档中的示例展示了如何遍历文档的布局实体。

感谢回答。

我不是想获取坐标位置,而是从文档开头到指定文本的index(偏移字符数),方便的话可以给出示例,thanks。

@qqdong 在这种情况下,您可以将文档转换为文本并获取您感兴趣的字符串的索引。请参阅以下代码示例:

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

String query = "项目名称111";
String docString = doc.toString(SaveFormat.TEXT);

int startIndex = docString.indexOf(query);
System.out.println("start: " + startIndex + " end: " +  (startIndex + query.length()));

谢谢你的回答,是一个不错的思路,但表格、图片、段落和换行是不是index的计数不一样呀。

我其实是想记录当前的index,在前端预览的时候,通过前端SDK去跳转到指定位置。

我使用了bookmark的思路,标记个位置,在前端跳转到某个bookmark,这种方法也ok吧。

@qqdong 是的,您是对的,这种方法仅适用于文本内容。 您可能注意到我提供的代码返回 22 作为起始索引,另外 2 个符号是分段符。
但是 MS Word 文档并不是简单的文本内容。 如果您的文档包含形状,它们将不会导出为 TXT 格式。 要确定某些内容的正确位置,您需要确定其在 Aspose.Words DOM 中的位置。
您可以使用 DocumentExplorer 演示项目调查 Aspose.Words DOM。