本文介绍使用Spire.PDF for Java来读取PDF中的书签。
import com.spire.pdf.*;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfBookmarkCollection;
import java.io.FileWriter;
import java.io.IOException;
public class GetBookmark {
public static void main(String[] args) {
//加载包含书签的PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("AddBookmarks.pdf");
//获取书签集合
PdfBookmarkCollection bookmarkCollection = pdf.getBookmarks();
//实例化StringBuilder类
StringBuilder stringbuilder = new StringBuilder();
//定义方法获取书签
GetBookmarkTitle(bookmarkCollection, stringbuilder);
//声明txt文件,并将获得的多级书签写入到文件.txt
FileWriter writer;
try {
writer = new FileWriter("读取的书签.txt");
writer.write(stringbuilder.toString());
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
pdf.dispose();
}
//定义方法获取书签标题
static void GetBookmarkTitle(PdfBookmarkCollection bookmarkCollection, StringBuilder stringbuilder)
{
if (bookmarkCollection.getCount()> 0)
{
for(int i = 0 ; i< bookmarkCollection.getCount(); i++ )
{
PdfBookmark parentBookmark = bookmarkCollection.get(i);
stringbuilder.append(parentBookmark.getTitle());
//递归文档多级书签
GetBookmarkTitle(parentBookmark, stringbuilder);
}
}
}
}
书签读取结果: