PDFBox 无法识别链接

发布于 2024-12-01 01:48:20 字数 782 浏览 1 评论 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() 确实返回一个空列表。

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

I'm using Apache PDFBox to scan through a PDF in search of links to a certain file.

I've got about a thousand PDF's to scan, and most of the links (in fact all but one as far as I can see now) are found.

However, there is one particular link in a PDF that PDFBox simply ignores. If I open the PDF with Foxit and check the link's properties, it looks exactly like all the other links (that do get found).

Here's the code I use to iterate through the links:

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

    }

In the affected PDF, page.getAnnotations() does return an empty list.

Is there any other type of link besides the annotations that I should be aware of?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不念旧人 2024-12-08 01:48:20

我查了一下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>>

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

I took a look at the annot dictionary. It looks like this:

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

I can't see anything wrong with it. It is also referenced correctly from the Annots entry in the page. Sorry I cannot be of more help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文