我有一个非常简单的问题,让我疯狂。基本上我想通过POI/DOCX4J库,docx段落结构和文档大纲来提取。我使用POI paragraph.getLvl()方法对正常的doc文档执行了相同的任务。有没有办法用docx获得相同的结果?我如何重新构建docx的整个TOC结构? 谢谢。POI docx段大纲解析[已解决]
解决方案:
感谢您的回答。我决定以这样的方式
Map headingMap = new HashMap();
headingMap.put("heading 1", 1);
headingMap.put("heading 2", 2);
headingMap.put("heading 3", 3);
headingMap.put("heading 4", 4);
headingMap.put("heading 5", 5);
headingMap.put("heading 6", 6);
headingMap.put("heading 7", 7);
headingMap.put("heading 8", 8);
headingMap.put("heading 9", 9);
Iterator<XWPFParagraph> iterator = docx.getParagraphsIterator();
Styles styles = getStyle(completePath);
while(iterator.hasNext()){
XWPFParagraph p = iterator.next();
if(p != null && p.getStyleID() != null){
for (Style s : styles.getStyle()){
if (p.getStyleID().equals(s.getStyleId()) && headingMap.containsKey(s.getName().getVal())){
StringBuffer text = new StringBuffer();
for(XWPFRun run : p.getRuns()) {
text.append(run.toString());
}
}
}
}
}
POI是否支持.docx? – duffymo
是的,POI支持Office Open XML格式(OOXML),因此docx – YoBre