Я достиг этого, анализируя закладки. Ниже приведен код, написанный мной для анализа закладок из PDF с помощью iText.
public void ParseBookMarkToLevel(List<HashMap<String,Object>> listBookmarks,Integer intLevel)
{
//if intLevel == 999 Parse the full bookmarks recursively to all levels
//System.out.println("Bookmarks Count: "+listBookmarks.size());
if(intLevel != 999)
intLevel--;
else
intLevel=999;
//System.out.println("Bookmarks Count: "+listBookmarks.size());
String title ="";
String pageStr ="";
String[] pageStrArr;
Integer pageNumber;
try{
for (HashMap<String,Object> bookmark: listBookmarks) {
//System.out.println("Page Type: "+bookmark.get("Page").getClass());
title = (bookmark.containsKey("Title")?bookmark.get("Title").toString() :"");
if(bookmark.containsKey("Page")){
pageStr = bookmark.get("Page").toString();
pageStrArr = pageStr.split(" ");
pageNumber = Integer.valueOf(pageStrArr[0]);
//System.out.println(""+title+"\t :"+pageNumber);
this.lhmBookMarks.put(title, pageNumber);
System.out.println(this.lhmBookMarks.toString());
}
else{
//System.out.println(title);
this.lhmBookMarks.put(title, 0);
}
if(bookmark.containsKey("Kids") && intLevel != 0){
this.ParseBookMarkToLevel((List<HashMap<String, Object>>) bookmark.get("Kids"),intLevel);
}
}
}
catch(Exception i){
System.out.println(i);
}
}
Возможно, вы должны добавить более подробную информацию, например, что вы пробовали до сих пор, почему это не сработало и т. Д. Это побудит других пользователей помочь вам. – nKn
Кроме того, имеет ли рассматриваемая книга TOC и т. Д. Также как структурированные данные или просто как контент с возможностью просмотра? – mkl
Вопрос заключается в двойном сообщении http://article.gmane.org/gmane.comp.java.lib.itext.general/66086. Обратите внимание, что вопрос о двойном размещении вопроса обычно не оценивается. Люди, которые видят один и тот же вопрос одного и того же человека на разных форумах, не могут быть склонны отвечать. –