书签操作(Java)

书签 (Bookmark)

Foxit PDF SDK提供了名为书签的导航工具,允许用户在PDF文档中快速定位和链接他们感兴趣的部分。PDF书签也称为大纲 (outline),每个书签包含一个目标位置或动作来描述它链接到的位置。它是一个树形的层次结构,因此在访问bookmark 树之前,必须首先调用接口pdf.PDFDoc.getRootBookmark以获取整个bookmark树的根节点。这里,”书签根节点” 是一个抽象对象,它只有一些子节点,没有兄弟节点, 也没有任何数据 (包括bookmark数据,目标位置数据和动作数据)。因为它没有任何数据,因此无法在应用程序界面上显示,能够调用的接口只有Bookmark.getFirstChild

在获取书签根节点后,就可以调用以下的接口去访问其他的书签:

访问parent bookmark,使用Bookmark.getParent接口。

访问第一个child bookmark,使用Bookmark.getFirstChild接口。

访问next sibling bookmark,使用Bookmark.getNextSibling接口。

插入一个新的bookmark,使用Bookmark.insert接口。

移动一个bookmark,使用Bookmark.moveTo接口。

Example:

如何遍历PDF文档中所有的书签

import com.foxit.sdk.pdf.Bookmark;
import com.foxit.sdk.pdf.PDFDoc;
...

// Assuming PDFDoc doc has been loaded.
...

Bookmark root = doc.getRootBookmark();
if (root.isEmpty()) {
    root = doc.createRootBookmark();
}
            
String titleStr = "";
Bookmark iterBookmark = root.getFirstChild ();
if (iterBookmark.isEmpty())
    return;
while (!iterBookmark.isEmpty())
{
    titleStr = iterBookmark.getTitle();
    if (iterBookmark.hasChild())
    {
        Bookmark childBookmark = iterBookmark.getFirstChild();
        titleStr = childBookmark.getTitle();
    }
                
    iterBookmark = iterBookmark.getNextSibling();
}
...
更新于 2020年4月22日

这篇文章有用吗?

相关文章