Aspose-words for Java 转换文档之后,多了一个 六十(60),是什么原因

aspose-words for Java 转换文档之后,多了一个 六十(60),是什么原因




我们这比分析导致的原因如下 :原文中存在这种下拉框选项, 用户清空了下拉框内容,没有删除组件,导致出现了此问题

9.docx (15.4 KB)

请问你们能看看是什么原因导致的吗,该怎么解决?

@SalesDhorde 看起来这只是在结构化文档标签中删除了文本的修订版。如果不删除这个内容控件(结构化文档标签),MS Word 不允许接受这个修订。要避免这种情况,可以使用以下代码,在接受修订之前删除结构化文档标签:

Document doc = new Document("input.docx");
StructuredDocumentTag tag = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true);
tag.remove();
doc.acceptAllRevisions();

您好,现在根据你们提供的代码操作之后,出现了新的问题:框出的部分直接被删除了,请问该怎么解决呢

@SalesDhorde 你能提供你正在使用的文件吗?

多删除文档测试.docx (18.5 KB)

@SalesDhorde 我认为没有通用的方法。由于您的文件中有多个标签,您可以尝试使用以下代码来删除这个特定的修订版:

Document doc = new Document("input.docx");
NodeCollection runs = doc.getChildNodes(NodeType.RUN, true);
for (Run run : (Iterable<Run>) runs) {
    if (run.isInsertRevision()){
        Node nextSibling = run.getNextSibling();
        if (nextSibling != null && nextSibling.getNodeType() == NodeType.STRUCTURED_DOCUMENT_TAG) {
            StructuredDocumentTag tag = (StructuredDocumentTag)nextSibling;
            tag.remove();
        }
    }
}

doc.save("output.docx");

或者,您需要通过文本找到该标签并将其删除。