文档中的修订记录,可以给每个修订记录设置一个唯一值吗?用户在接受了或拒绝了修订之后,这个唯一值也不会变

文档中的修订记录,可以给每个修订记录设置一个唯一值吗?用户在接受了或拒绝了修订之后,这个唯一值也不会变

@ouchli

请问您能否提供更多关于您希望如何设置唯一值的信息?例如,您希望在什么情况下设置这个唯一值?

例如文档中有两个地方的修订记录:

这两个地方的修订操作一模一样,请问我怎么用一个唯一标识去区分?

@ouchli 您可以尝试使用CustomNodeId,您可以在修订版中为Run节点设置该值。

doc.getRevisions().get(0).getParentNode().setCustomNodeId(1);

那如果是批注的形式的话,在同一个run上添加同样的批注,要怎么去区分呢

@ouchli 您可以比较注释文本,如果相同,则设置自定义节点标识。 评论 "节点也有 CustomNodeId 属性。

请问图中的修订记录颜色可以自定义修改嘛?怎么修改?批注的颜色呢?

@ouchli 您可以通过 RevisionOptions 控制编辑和注释的颜色,这在将 DOCX 转换为固定页面格式(如 PDF)时有效。

这个设置不能在docx里面生效吗?

@ouchli 遗憾的是,它是在应用程序级别定义的,因此无法使用 "Aspose.Words "进行更改。

你好,我在修订时遇到以下问题:
RevisionCollection revisions = document.getRevisions();
我通过上述代码获取到了文档中所有修订,然后我要拒绝指定作者的修订记录,代码如下:
for (Revision revision : revisions) {
String author = revision.getAuthor();
if (Objects.nonNull(author) && author.startsWith(DocConstants.WXCM_EDITOR)) {
revision.reject();
}
}
问题一:但是这个代码执行会报错,请问我该如何实现代码满足我的要求呢

问题二:另外当我使用如下方法修订时
RevisionCollection revisions = document.getRevisions();
List revisionsToReject = new ArrayList<>();
Iterator iterator = revisions.iterator();
while (iterator.hasNext()) {
Revision revision = iterator.next();
if (revision.getAuthor().startsWith(DocConstants.WXCM_EDITOR)) {
revisionsToReject.add(revision);
}
}
// 遍历临时列表,执行 reject 操作
for (Revision revision : revisionsToReject) {
revision.reject();
}
执行到某个revision,会抛出空指针异常,但又定位不到具体地方,请问是什么原因

问题三:是否可以提供一种写法,我从RevisionCollection revisions 数据集中去除某些revision元素后,依然能够得到一个RevisionCollection集,然后我调用这个新数据集的rejectAll方法

@ouchli 出现这个问题是因为 getRevisions 返回给了 Iterable<Revision> 对象。
我检查了以下代码,我的文档没有出现任何问题。 请尝试使用:

Document doc = new Document("input.docx");

RevisionCollection revisions = doc.getRevisions();
ArrayList<Revision> revisionsToReject = new ArrayList<>();
for (Revision revision : revisions) {
    String author = revision.getAuthor();
    if (author != null && author.startsWith("R PC")) {
        revisionsToReject.add(revision);
    }
}

for (Revision revision : revisionsToReject) {
    revision.reject();
}

要获取新的修订版集,可以使用 getRevisions() 并以新的条件收集它们。 遗憾的是,当前的实现方式存在限制,因此只能对原始集合使用 rejectAll