列表信息存储在ApachePoi的XWPFDocument的什么位置?



我想合并两个或多个docx文件(将它们附加在一起(或将文档的一部分(XWPFParagraph(移动到其他地方。

问题是,在这样的操作之后,列表总是会中断。假设我们在具有序列号的文档中有一个列表,那么我们在另一个具有项目符号或字母的文档中有其他列表。比在副本之后,所有项目符号都变成了数字(或者更糟糕的数字,从上一个列表结束的地方开始(。

我已经尝试了几种解决方案:
遍历正文元素并像这里一样手动复制段落和表格。
-将一个新身体附加到现有的身体中,就像这里一样

除了页面范围的样式之外,它们运行良好。但房源从来没有。这是否意味着列表符号存储为页面范围的信息(否则将使用 XWPFParagraph 成功复制(?如果是,那么为什么和在哪里?

我已经深入研究了javadoc:https://poi.apache.org/apidocs/dev/org/apache/poi/xwpf/usermodel/XWPFDocument.html
但是找不到有关列表的任何信息。

Office Open XML文件格式的Word编号(编号列表,但也包括项目符号列表(存储在*.docxZIP存档/word/numbering.xml中。有描述列表格式的abstractNum元素和引用abstractNumnum元素。/word/document.xml段落中引用了num要素的numId,以规定该段落应使用哪种编号格式。引用相同numId的段落位于同一列表中。 引用不同numId的段落位于不同的列表中。

apache poi中,有XWPFNumbering代表文档部分/word/numbering.xml和XWPFAbstractNum代表abstractNum

到目前为止,如果不使用低级ooxml-schemas类,就无法从头开始创建XWPFAbstractNum

另外,据我所知,没有简单的方法来合并不同Word文档/word/numbering.xml文档部分,因为需要处理/word/numbering.xml中的不同Id以及它们在/word/document.xml中的出现。这非常复杂,我不知道任何免费库可以正确执行此操作。

一般来说,据我所知,由于Word文件格式的复杂存储,没有简单的方法可以将不同的Word文档合并在一起。所有使用自由代码提供的可能性都只是有用的一半(遍历和复制(,如果不是错误和无用(简单地一个接一个地附加多个文档正文(。

最新更新