PDFBox не распознает ссылку

Я использую Apache PDFBox для сканирования PDF-файлов в поисках ссылок на определенный файл.

Мне нужно отсканировать около тысячи PDF-файлов, и большинство ссылок (фактически все, кроме одной, насколько я вижу сейчас) найдены.

Однако в PDF-документе есть одна конкретная ссылка, которую PDFBox просто игнорирует. Если я открою PDF-файл с помощью Foxit и проверю свойства ссылки, он будет выглядеть точно так же, как и все остальные ссылки (которые действительно будут найдены).

Вот код, который я использую для перебора ссылок:

    for( Object p : pages ) {
        PDPage page = (PDPage)p;

        List<?> annotations = page.getAnnotations();
        for( Object a : annotations ) {
            PDAnnotation annotation = (PDAnnotation)a;

            if( annotation instanceof PDAnnotationLink ) {
                PDAnnotationLink link = (PDAnnotationLink)annotation;

                /* Do stuff with the link */
            }
        }

    }

В затронутом PDF-файле page.getAnnotations() действительно возвращает пустой список.

Есть ли другие типы ссылок, кроме аннотаций, о которых мне следует знать?


person DeX3    schedule 24.08.2011    source источник


Ответы (1)


Я взглянул в словарь аннотаций. Это выглядит так:

<</A 1207 0 R/BS<</D[3.0]/S/D/Type/Border/W 0>>/Border[0 0 0[3.0]]/C[1.0 0.0 0.0]/H/I/Rect[56.4168 621.404 547.686 639.787]/Subtype/Link/Type/Annot>>

Я не вижу в этом ничего плохого. На него также правильно ссылаются в записи «Аннотации» на странице. Извините, я ничем не могу больше помочь.

person Frank    schedule 24.08.2011
comment
Вот и все: rapidshare.com/files/3712084146/PROT1112.pdf, он в хотя немецкий. Ссылка должна быть в первой строке данных таблицы. - person DeX3; 24.08.2011
comment
Я взглянул в словарь аннотаций. Выглядит это так: ‹* / A 1207 0 R / BS ‹* / D [3.0] / S / D / Type / Border / W 0 ›› / Border [0 0 0 [3.0]] / C [1.0 0.0 0.0 ] / H / I / Rect [56.4168 621.404 547.686 639.787] / Subtype / Link / Type / Annot ›› Я не вижу в этом ничего плохого. На него также правильно ссылаются в записи «Аннотации» на странице. Извините, я ничем не могу больше помочь. - person Frank; 24.08.2011