Разбор PDF-файла с использованием Apache PDFBox для получения контуров - PullRequest
0 голосов
/ 22 ноября 2018

Теперь я могу использовать PDFBox для извлечения контуров из PDF, но некоторые PDF могут получить контуры, другие - нет.

В каждом PDF есть контуры, и когда я открываю PDF, используйте инструмент чтения PDF,Я могу щелкнуть контур на определенной странице.

PDF can get outlines PDF can't get outlines

Вот мой код:

public static void main(String[] args) {
     try {
        PDDocument document = PDDocument.load(new File(filePath));
        PDDocumentOutline outline = document.getDocumentCatalog().getDocumentOutline();
        getOutlines(document, outline, "");
        document.close();
    } catch (InvalidPasswordException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public static void getOutlines(PDDocument document, PDOutlineNode bookmark, String indentation) throws IOException{
    PDOutlineItem current = bookmark.getFirstChild();
    while (current != null) {
        PDPage currentPage = current.findDestinationPage(document);
        Integer pageNumber = document.getDocumentCatalog().getPages().indexOf(currentPage) + 1;
        System.out.println(current.getTitle() + "-------->" + pageNumber);
        getOutlines(document, current, indentation);
        current = current.getNextSibling();
    }
}
...