2015-06-07 4 views
1

Как создать иерархические закладки для PDF, как это:Иерархическая Закладка поколения в формате PDF с использованием PDFBox библиотеки

Root 
---Node-1 
-------Node-11 
-------Node-12 
.... 
---Node-2 
-------Node-21 
.... 

У меня есть двумерный массив (Я принимаю любой вид списка/набор для примера) с имена узлов, как это:

1 
11, 
12, 
... 
2 
21, 
22, 
23, 
... 
... 

Этот вопрос является базой на this, но я не знаю, как это сделать с библиотекой PDFBox.

ответ

0

Это сегмент от CreateBookmarks example, найденного в исходном коде загрузки:

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]);