文档中的修订记录,可以给每个修订记录设置一个唯一值吗?用户在接受了或拒绝了修订之后,这个唯一值也不会变
@ouchli 您可以尝试使用CustomNodeId,您可以在修订版中为Run节点设置该值。
doc.getRevisions().get(0).getParentNode().setCustomNodeId(1);
请问图中的修订记录颜色可以自定义修改嘛?怎么修改?批注的颜色呢?
这个设置不能在docx里面生效吗?
你好,我在修订时遇到以下问题:
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
。