使用Docx4j提取编号标题

时间:2014-06-02 12:05:53

标签: java docx docx4j

我正在尝试使用docx4j从docx文件中提取文本。 到目前为止,我可以提取所有书面文本和图像,但我在提取编号标题(如下所示)和列表时遇到问题。

1. Heading 1
       text....
1.1 Heading 2
       text....
       text....
2. Heading 1
       text....
2.1 Heading 2
    ....
    a)
    b)
    c)

打开docx文件,在documents.xml中,我发现所有这些标题和列表都在numPr标记内。

“1.标题”是

<w:numPr>
    <w:ilvl w:val="0"/>
    <w:numId w:val="2"/>
</w:numPr>

“1.1 Header”是

<w:numPr>
    <w:ilvl w:val="1"/>
    <w:numId w:val="2"/>
</w:numPr>

a),b),c)列表是

<w:numPr>
    <w:ilvl w:val="0"/>
    <w:numId w:val="22"/>
</w:numPr>
...
<w:numPr>
    <w:ilvl w:val="0"/>
    <w:numId w:val="22"/>
</w:numPr>
...
<w:numPr>
    <w:ilvl w:val="0"/>
    <w:numId w:val="22"/>
</w:numPr>

我的问题是:是否有一种简单的方法来获取这些标题文本(1.; 1.1; a)......)?使用P.toString()或使用JAXBElement进行简单的提取只会给出段落中的书面文本而不是列表。 或者我如何将标签转换为文本?

谢谢!

1 个答案:

答案 0 :(得分:1)

listnumbering Emulator class计算出数字是什么。

用于(X)HTML和PDF输出。

您可以直接自己使用;你可以尝试的另一种方法是使用FOP的TXT输出。使用带有setApacheFopMime的FOSettings对象尝试Docx4J.toFO(&#34; text / plain&#34;)

如果您尝试使用FOP的TXT格式,请注意从http://apache-fop.1065347.n5.nabble.com/About-the-format-TXT-td37351.html

链接的有关推荐设置的建议