0

我正在使用 Apache PDFBox 扫描 PDF 以搜索指向某个文件的链接。

我有大约一千个 PDF 文件要扫描,并且大部分链接(事实上,就我现在所见,实际上只有一个)都找到了。

但是,PDFBox 会忽略 PDF 中的一个特定链接。如果我用 Foxit 打开 PDF 并检查链接的属性,它看起来与所有其他链接(确实找到)完全一样。

这是我用来遍历链接的代码:

    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()确实返回一个空列表。

除了我应该注意的注释之外,还有其他类型的链接吗?

4

1 回答 1

1

我看了一下annot字典。它看起来像这样:

<</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>>

我看不出有什么问题。页面中的 Annots 条目也正确引用了它。抱歉,我无法提供更多帮助。

于 2011-08-24T13:41:10.780 回答