我们探索了许多API,如tika,Pdfbox和itextpdf,以从pdf文件中提取页码,但我们无法做到这一点。在itextpdf中,我们得到了PdfPageLabels.getPageLabels(reader),但这种方法的行为并不统一。
答案 0 :(得分:4)
您找不到任何能够从PDF中提取页码的软件的原因很简单:PDF中不存在页码的概念。
请允许我预测您的回复。
*“等一下!”你说,“当我在Adobe Reader中打开PDF时,我可以清楚地看到文档中的页码!”
是的,您可以通过您的眼睛和人类情报看到该页码,但是对于机器,该数字只是在画布上绘制的一些文字。使用该文档的机器不知道页面上的所有字形,线条和形状是什么。因此,软件无法为您提供您认为是人的页码。机器不知道在哪里看!
如果您对PDF有所了解,我可以预测您的下一个回复。
“等一下!”你说,“标记PDF怎么样?标记PDF是否意味着文档的语义与表示一起存储?”
是的,当PDF被标记时,一段文字知道它是标题,段落或列表的一部分......但标记的PDF用于定义真实内容的结构。但是,页码不是真实内容的一部分。它们被标记为工件以及页面上的页眉,页脚和其他项目,这些项目不被视为真实内容。没有办法区分页码。
“那么这些页面标签是什么?”你问。
嗯,页面标签是可选。它们出现在一些经过精心设计的PDF中,但是在大多数PDF中你都不会出现它们。
这是一个很长的答案。简短的回答很简单:你要求的是一些不可能的事情(一般来说,不仅仅是iText,Tika,PdfBox或者你可能会尝试的任何其他工具)。