有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从PDF文件中提取页码

我们探索了很多API,比如tika、Pdfbox和itextpdf,从pdf文件中提取页码,但我们没有做到这一点。在itextpdf中,我们得到了PdfPageLabels。getPageLabels(reader),但此方法的行为并不一致


共 (1) 个答案

  1. # 1 楼答案

    您找不到任何能够从PDF中提取页码的软件的原因很简单:PDF中不存在页码的概念

    请允许我预测你的反应

    *“等一下!”您会说,“当我在Adobe Reader中打开PDF时,我可以清楚地看到文档中的页码!”

    是的,你可以用你的眼睛和你的人类智能看到页码,但对机器来说,页码只是画布上的一些文本。使用文档的机器不知道页面上的所有字形、线条和形状是关于什么的。因此,软件不能给你一个人看到的页码。一台机器不知道去哪里找

    如果你对PDF有所了解,我可以预测你的下一个回复

    “等等!”你说,“带标签的PDF呢?带标签的PDF不意味着文档的语义与表示一起存储吗?”

    是的,当一个PDF被标记时,一段文本知道它是标题、段落或列表的一部分,。。。但标记的PDF用于定义真实内容的结构。然而,页码并不是真实内容的一部分。它们被标记为工件,以及页面上不被视为真实内容的页眉、页脚和其他项目。没有办法区分页码

    “那么这些页面标签是关于什么的?”<你问吧

    嗯,页面标签是可选的。它们存在于一些构思良好的PDF中,但在野外发现的绝大多数PDF中都不存在

    这是一个很长的答案。简短的回答很简单:你要求的是一些不可能的东西(一般来说,不仅仅是iText、Tika、PdfBox或任何其他你可能尝试的工具)