合并pdf并在java中添加iText书签

如何使用iText将书签添加到现有PDF?

我将多个PDF合并为一个PDF,我需要为最终的PDF构建书签。 例如,我有三个PDF:doc1.pdf,doc2.pdf和doc3.pdf,doc1和doc2属于Group1,doc3属于Group2。 我需要合并它们,并且必须为生成的PDF构建嵌套书签,如下所示:

Group1 doc1 doc2 Group2 doc3 

等等

我已经制作了一个MergeWithOutlines示例,它使用PdfCopy连接三个现有的PDF(我假设您已经知道该部分)。

在这样做时,我创建了一个像这样的outlines对象:

 ArrayList> outlines = new ArrayList>(); 

我向这个outlines对象添加元素:

 HashMap helloworld = new HashMap(); helloworld.put("Title", "Hello World"); helloworld.put("Action", "GoTo"); helloworld.put("Page", String.format("%d Fit", page)); outlines.add(helloworld); 

当我想要一些层次结构时,我会介绍kids

 ArrayList> kids = new ArrayList>(); HashMap link1 = new HashMap(); link1.put("Title", "link1"); link1.put("Action", "GoTo"); link1.put("Page", String.format("%d Fit", page)); kids.add(link1); helloworld.put("Kids", kids); 

如果您想要一个没有链接的条目,请删除放置ActionPage

完成后,将轮廓添加到复制对象:

 copy.setOutlines(outlines); 

查看生成的PDF ,您将在书签面板中看到轮廓。