首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PDFBOX向现有PDF添加顶层书签

使用PDFBOX向现有PDF添加顶层书签
EN

Stack Overflow用户
提问于 2020-03-05 01:19:45
回答 1查看 136关注 0票数 1

我想在JAVA中使用PDFBOX将顶级书签添加到现有的pdf文件中。

不确定为什么下面的代码不能工作,有人能帮我吗?谢谢。

下面是书签部分中Document.pdf的外观。

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

Java代码(程序中的一部分):

代码语言:javascript
复制
PDDocument document = PDDocument.load(new File("C:/Users/Desktop/document.pdf")) 
    PDDocumentOutline documentOutline = new PDDocumentOutline();
    document.getDocumentCatalog().setDocumentOutline(documentOutline);
    PDOutlineItem pagesOutline = new PDOutlineItem();
    pagesOutline.setTitle("All Pages");
    documentOutline.addFirst(pagesOutline);

    pagesOutline.openNode();
    documentOutline.openNode();

    document.getDocumentCatalog().setPageMode(PageMode.USE_OUTLINES);

    document.save("C:/Users/Desktop/document.pdf");

    document.close()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 00:07:50

这是我的尝试,如果以后被问到问题,我会保留我的文件名。

我所做的是将旧的大纲包装到一个新的项目中。无法逐个添加现有项,因为只能添加“孤立项”。

代码语言:javascript
复制
PDDocument document = PDDocument.load(new File("000009.pdf")); 
PDDocumentOutline oldDocumentOutline = document.getDocumentCatalog().getDocumentOutline();
PDDocumentOutline documentOutline = new PDDocumentOutline();
document.getDocumentCatalog().setDocumentOutline(documentOutline);
PDOutlineItem pagesOutline = new PDOutlineItem();
//pagesOutline.setTitle("All Pages");
//documentOutline.addFirst(pagesOutline);
PDOutlineItem oldOutlineItemWrapped = new PDOutlineItem(oldDocumentOutline.getCOSObject());
oldOutlineItemWrapped.setTitle("All Pages");
documentOutline.addFirst(oldOutlineItemWrapped);

//pagesOutline.openNode();
oldOutlineItemWrapped.openNode();
documentOutline.openNode();

document.getDocumentCatalog().setPageMode(PageMode.USE_OUTLINES);

document.save("000009-modified.pdf");

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

https://stackoverflow.com/questions/60531468

复制
相关文章

相似问题

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