私を夢中にさせている非常に単純な問題があります。基本的に、POI/DOCX4J ライブラリを介して、docx 段落構造とドキュメント アウトラインを抽出したいと考えています。POI paragraph.getLvl() メソッドを使用して、通常の doc ドキュメントで同じタスクを実行しました。docx で同じ結果を得る方法はありますか? 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());
}
}
}
}
}