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



如何使用ittext将书签添加到现有的pdf ?

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

Group1 
   doc1  
   doc2  
Group2 
   doc3 

等。

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

在这样做的同时,我创建了一个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);

如果您想要一个没有链接的条目,请删除包含ActionPage的行。

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

copy.setOutlines(outlines);

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

最新更新