Aspose.word for java 是否支持从一个部分区域锁定的文件中读取锁定的内容

image.png (11.5 KB)
如图,无背景区域是只读的,黄色背景区域是可编辑的,我现在需要读取出只读区域的文本内容

@chazz 当然,您可以加载具有可编辑范围的文档并提取只读和可编辑内容。 可编辑内容由特殊节点标记:EditableRangeStartEditableRangeEnd

1 Like

好的 谢谢 我通过提供的demo实现了

@chazz 如有任何问题,请随时询问。 我们很乐意为您提供帮助。

1 Like

当我使用maven管理项目,通过打包成docker镜像发布后这个功能就不好用了
会出现 Caused by: java.lang.ClassNotFoundException: com/aspose/words/Node的报错
下图是我的pom,版本为aspose-words-21.3.0-jdk17.jar
image.png (24.6 KB)

@chazz 请尝试使用以下存储库和依赖项定义

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>https://repository.aspose.com/list/repo/</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>21.3</version>
    <type>pom</type>
</dependency>

我们内部仓库管理有规范,不允许使用公司仓库外的maven仓库,请问还有别的解决办法吗

@chazz 这是建议在您的 POM 文件中配置 Aspose.Words 依赖项的方式。 因此,您应该遵循这些建议以使其发挥作用。
https://downloads.aspose.com/words/java

1 Like

继续求问一个问题 按照示例代码读取 在文档开始处会有问题
mInsideEditableRange 没有办法判断文档开始处是否为锁定区域,所以会导致一部分读取错误
有没有办法判断文档开始处为锁定区域,以便于给 mInsideEditableRange 设定初始值

@chazz 我认为在您的情况下,您可以使用 DocumentVisitor 来阅读文档。 在这种情况下,您可以使用 DocumentVisitor.visitEditableRangeStart 方法来检测可编辑范围的开始。

是的 目前已经使用了此方法 但是据观察 文档中的第一个区块是不会进入
visitEditableRangeStart 方法的
而是 直接进入了
visitDocumentStart 方法
但是在 visitDocumentStart 方法中我目前没有办法判断出来 该块是否是可编辑的

@chazz DocumentVisitor 根据它们在 Document Object Model 中的位置访问文档中的节点。 Document 是一个根元素,所以 DocumentVisitor 先访问它,然后它访问 SectionStart 和 BodyStart,然后访问 section 的内容。