首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用PDFBox库生成PDF中的分层书签

利用PDFBox库生成PDF中的分层书签
EN

Stack Overflow用户
提问于 2015-06-07 15:44:13
回答 1查看 1.5K关注 0票数 1

如何为这样的PDF创建分层书签:

代码语言:javascript
复制
Root
---Node-1
-------Node-11
-------Node-12
....
---Node-2
-------Node-21
....

我有一个二维数组(该示例接受任何类型的列表/集合),其节点名称如下:

代码语言:javascript
复制
1
 11,
 12,
 ...
2
 21,
 22,
 23,
 ...
...

这个问题基于,但我不知道如何处理PDFBox库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-07 16:14:18

这是来自CreateBookmarks实例的一个片段,可以在源代码下载中找到:

代码语言:javascript
复制
document = PDDocument.load( args[0] );
if( document.isEncrypted() )
{
    System.err.println( "Error: Cannot add bookmarks to encrypted document." );
    System.exit( 1 );
}
PDDocumentOutline outline =  new PDDocumentOutline();
document.getDocumentCatalog().setDocumentOutline( outline );
PDOutlineItem pagesOutline = new PDOutlineItem();
pagesOutline.setTitle( "All Pages" );
outline.appendChild( pagesOutline );
List pages = document.getDocumentCatalog().getAllPages();
for( int i=0; i<pages.size(); i++ )
{
    PDPage page = (PDPage)pages.get( i );
    PDPageFitWidthDestination dest = new PDPageFitWidthDestination();
    dest.setPage( page );
    PDOutlineItem bookmark = new PDOutlineItem();
    bookmark.setDestination( dest );
    bookmark.setTitle( "Page " + (i+1) );
    pagesOutline.appendChild( bookmark );
}
pagesOutline.openNode();
outline.openNode();

document.save( args[1] );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30695462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档