大多数PDF看起来,PDF里面包含了完美的文本结构。但是,实际上,PDF的原始结构中不包含任何的,类似于段落的结构,句子的结构和词的结构。我们在网页上看到一个段落,实际上是由P标签包含的一个段落,但在PDF中不是这样的。PDF的代码信息中,没有这样的标签。
当在pdf中出现一段文本,pdf文件只知道文本中每个字以及每个字出现的位置。
如果想从pdf中抽取一段有意义的文本,就变的很困难,因为pdf只告诉你每个字出现的位置。不像在html中,我们用p标签,div标签,就可以获取一个文本框。pdf中,是没有这些标签的。
在pdf中,段落中的文字,表格中的文字,页脚的文字,描述图片的文字,都是一样的。
txt文件和word文件都包含字符串流,但是pdf中没有字符串流。我们写word,从头写到尾,就是一个文本流;但pdf是把字一个一个贴上去的,只要贴的位子正确,不按照顺序也可以。
一个pdf文档是由一系列的对象组成,有的对象描述pdf一页,有的对象描述pdf中的几页,这些对象中也有一些附加的交互信息和高级的应用数据。pdf文件中包含的这些object,使pdf文档拥有了相关的结构化信息,这些结构化信息表示为一个独立字节序列。
参考文献:Adobe System Inc. (2007). Pdf reference: Adobe portable document format, version 1.7.