如何使用iText为现有PDF添加书签?
我将多个PDF合并为一个PDF,我需要为最终PDF构建书签。例如,我有三个PDF:doc1.pdf,doc2.pdf和doc3.pdf,doc1和doc2属于Group1,doc3属于Group2。我需要合并它们,并且必须为生成的PDF构建嵌套书签,如下所示:
Group1
doc1
doc2
Group2
doc3
等。
答案 0 :(得分:4)
我做了一个MergeWithOutlines示例,使用PdfCopy
连接三个现有PDF(我假设您已经知道该部分)。
在这样做时,我创建了一个outlines
对象,如下所示:
ArrayList<HashMap<String, Object>> outlines = new ArrayList<HashMap<String, Object>>();
我向这个outlines
对象添加元素:
HashMap<String, Object> helloworld = new HashMap<String, Object>();
helloworld.put("Title", "Hello World");
helloworld.put("Action", "GoTo");
helloworld.put("Page", String.format("%d Fit", page));
outlines.add(helloworld);
当我想要一些层次结构时,我会介绍kids
:
ArrayList<HashMap<String, Object>> kids = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> link1 = new HashMap<String, Object>();
link1.put("Title", "link1");
link1.put("Action", "GoTo");
link1.put("Page", String.format("%d Fit", page));
kids.add(link1);
helloworld.put("Kids", kids);
如果您想要一个没有链接的条目,请删除放置Action
和Page
的行。
完成后,将轮廓添加到复制对象:
copy.setOutlines(outlines);
查看resulting PDF,您会在书签面板中看到大纲。