如何使用java pdfbox库在单个页面中设置多个书签

时间:2017-01-18 09:05:24

标签: java pdfbox

我要求在现有的pdf文件中创建书签,该文件可能在一个页面中有多个书签,指向各自的标题。

我经历了一个解释如何Create Bookmarks的链接。但它正在解释页面的书签。

我正在使用pdfbox java库。任何示例代码或链接都是值得赞赏的。

1 个答案:

答案 0 :(得分:1)

您引用的CreateBookmarks会创建包含PDPageFitWidthDestination个实例作为目标的书签:

PDPageFitWidthDestination dest = new PDPageFitWidthDestination();
dest.setPage( page );
PDOutlineItem bookmark = new PDOutlineItem();
bookmark.setDestination( dest );
bookmark.setTitle( "Page " + pageNum );
pagesOutline.addLast( bookmark );

PDPageFitWidthDestination记录为

/**
 * This represents a destination to a page at a y location and the width is magnified
 * to just fit on the screen.
 *
 * @author Ben Litchfield
 */
public class PDPageFitWidthDestination extends PDPageDestination

另一方面,你想要

  

单个页面中的多个书签,指向各自的标题。

特别是如果你有多个列,不同的标题可能会彼此相邻,你应该使用不同类型的目的地,例如

  • PDPageFitRectangleDestination显示页面的给定矩形,或
  • PDPageXYZDestination进入页面上的给定点并设置给定的缩放值。

使用这样的目的地添加一个轮廓,重点放在文件中每个标题的相应标题上,应该可以生成你想要的内容。