Java:使用itext读取PDF书签名称
我正在使用包含多个文档的单个PDF。每个文档都有一个书签。我需要读取我正在构建的对账应用程序的书签名称。下面的代码不适用于我。我正在尝试将书签名称放入标题字符串中。有人能提供指导吗?多谢各位
PdfReader reader = new PdfReader("C:\\Work\\Input.pdf");
List<HashMap<String,Object>> bookmarks = SimpleBookmark.getBookmark(reader);
for(int i = 0; i < bookmarks.size(); i++){
HashMap<String, Object> bm = bookmarks.get(i);
String title = ((String)bm.get("Title"));
}
# 1 楼答案
您没有考虑书签存储在带有分支和叶子的树结构中(在PDF规范中,它被称为大纲树)
正如@Todoy在comment部分中所说的,您的代码适用于顶层,但是如果您想查看所有标题,则需要使用递归方法,该方法还可以查看
"Kids"
看看this code sample:
showTitle()
方法是递归的。如果已检查的书签条目有子项,则它会调用自身。使用此代码段,您可以遍历大纲树的所有分支和叶子