как я могу получить набросок Dest Num страницы по itext 7 - PullRequest
0 голосов
/ 29 апреля 2018

Я использую itext для анализа некоторых PDF-файлов, просто хочу получить текст контуров и номер страницы, к которой будет переходить контур.

Я пытаюсь использовать PdfDestination, чтобы получить некоторую информацию, но ничего не могу использовать, Может ли помочь любое тело, код следующий:

public static void showTitle(PdfOutline outline, StringBuffer stringBuffer) {
    System.out.println(outline.getTitle());
    stringBuffer.append(outline.getTitle() + "\n");
    List<PdfOutline> kids = outline.getAllChildren();
    if (kids != null) {
        for (PdfOutline kid : kids) {
            showTitle(kid, stringBuffer);
        }
    }
}

public static void itext_getCatalogs(String pdfPath) {
    try {
        long startTime = System.nanoTime();
        PdfDocument doc = new PdfDocument(new PdfReader(pdfPath));
        int pageCount = doc.getNumberOfPages();
        System.out.printf("pageCount=%d\n", pageCount);

        PdfOutline outlines = doc.getOutlines(false);

        PdfDictionary pdfDictionary = doc.getCatalog().getPdfObject();
        List<PdfOutline> bookmarks = outlines.getAllChildren().get(0).getAllChildren();
        StringBuffer stringBuffer = new StringBuffer();
        for (PdfOutline bookmark : bookmarks) {
            //PdfDestination dest = bookmark.getDestination();
            //Map<String, PdfObject> retMap = new HashMap<String, PdfObject>();
            //PdfObject pdfObject = bookmark.getDestination().getDestinationPage(retMap);
            showTitle(bookmark, stringBuffer);
        }
        doc.close();
        long endTime = System.nanoTime();
        long duration = endTime - startTime;
        System.out.printf("time: %dms\n", duration/1000000);
    }catch (IOException e) {

    }
}
...