谁能建议我如何使用 iText 库以编程方式从电子书 (PDF) 中提取目录、章节和索引的内容?
问问题
670 次
1 回答
0
我通过解析书签实现了这一点。下面是我编写的使用 iText 解析 PDF 中的书签的代码。
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);
}
}
于 2014-02-21T06:37:39.630 回答