文件的物理结构
- 格式:ppt
- 大小:881.00 KB
- 文档页数:78
PDF(Portable Document Format,便携式文档结构)是一种很有用的文件格式,其最大的特点是平台无关而且功能强大(支持文字/图象/表单//音乐/视频等).做PDF的解析,首先要熟悉PDF文件的物理结构和逻辑结构。
PDF文件物理结构可分为以下几块: 1.文件头文件头是PDF文件的第一行,格式如下:%PDF-1.4这是个固定格式,表示这个PDF文件遵循的PDF规范版本,目前PDF的生成工具,除了官方的acrobat,其他生成的以1.4版本的居多。
对于做PDF开发来说,一个最简单的原则就是生成PDF的时候尽量符合低版本规范,以保证大多数解析器能支持;解析PDF的时候尽量支持高版本的规范,以保证支持大多数工具生成的PDF文件。
从1.4版本以后,PDF文件的版本并不唯一的只是在这里表示了,可能后面会改写(catalog的Version词条),所以解析PDF的时候,如果这里的版本大于等于1.4,应该再比较一下catalog里面的version,取其中高一点的版本。
2.对象集合这是一个PDF文件最重要的部分,文件中用到的所有对象,包括文本/图象/音乐/视频/字体/超连接/加密信息/文档结构信息等等,都在这里定义。
格式如下:2 0 obj ... end obj一个对象的定义包含4个部分:前面的2是对象序号,其用来唯一标记一个对象;0是生成号,按照PDF规范,如果一个PDF文件被修改,那这个数字是累加的,它和对象序号一起标记是原始对象还是修改后的对象,但是实际开发中,很少有用这种方式修改PDF的,都是重新编排对象号;obj和endobj是对象的定义范围,可以抽象的理解为这就是一个左括号和右括号;省略号部分是PDF规定的任意合法对象(一共8种,见后面附A)。
可以通过R关键字来引用任何一个对象,比如要引用上面的对象,可以使用2 0 R,需要主意的是,R关键字不仅可以引用一个已经定义的对象,还可以引用一个并不存在的对象,而且效果就和引用了一个空对象一样。
⽂件的结构⽂件的物理结构是从实现观点出发,⼜称为⽂件的存储结构,是指⽂件在外存上的存储组织形式。
⽂件的逻辑结构是从⽤户观点出发看到的⽂件的组织形式。
⽂件的逻辑结构与存储介质特性⽆关,但⽂件的物理结构与存储介质的特性有很⼤关系。
按逻辑结构,⽂件有⽆结构⽂件和有结构⽂件两种类型:⽆结构⽂件和有结构⽂件。
⽆结构⽂件(流式⽂件)⽆结构⽂件是最简单的⽂件组织形式。
⽆结构⽂件将数据按顺序组织成记录并积累保存,以字节(Byte)为单位。
由于⽆结构⽂件没有结构,因⽽对记录的访问只能通过穷举搜索的⽅式,故这种⽂件形式对⼤多数应⽤不适⽤。
但字符流的⽆结构⽂件管理简单,⽤户可以⽅便地对其进⾏操作。
所以,那些对基本信息单位操作不多的⽂件较适于⾤⽤字符流的⽆结构⽅式,如源程序⽂件、⽬标代码⽂件等。
有结构⽂件(记录式⽂件)有结构⽂件按记录的组织形式可以分为:1) 顺序⽂件。
⽂件中的记录⼀个接⼀个地顺序排列,记录可以是定长的或变长的,可以顺序存储或以链表形式存储,在访问时需要顺序搜索⽂件。
顺序⽂件有以下两种结构:第⼀种是串结构,记录之间的顺序与关键字⽆关。
通常的办法是由时间决定,即按存⼊时间的先后排列,最先存⼊的记录作为第1个记录,其次存⼊的为第2个记录,依此类推。
第⼆种是顺序结构,指⽂件中的所有记录按关键字顺序排列。
在对记录进⾏批量操作时,即每次要读或写⼀⼤批记录,对顺序⽂件的效率是所有逻辑⽂件中最⾼的;此外,也只有顺序⽂件才能存储在磁带上,并能有效地⼯作,但顺序⽂件对查找、修改、增加或删除单个记录的操作⽐较困难。
2) 索引⽂件。
如下图所⽰。
对于定长记录⽂件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第⼀个记录的地址:然⽽,对于可变长记录的⽂件,要查找第i个记录时,必须顺序地查找前i-1个记录,从⽽获得相应记录的长度L,然后才能按下式计算出第i个记录的⾸址:注意:假定每个记录前⽤⼀个字节指明该记录的长度。
文件物理结构多重索引结构
文件物理结构是指文件在存储介质上的组织方式,它决定了文件的读取和写入操作的效率。
常见的文件物理结构包括顺序结构、链式结构、索引结构等。
多重索引结构是一种常见的文件物理结构,它将文件的索引信息进行多层次的组织,提高了文件的检索效率。
多重索引结构通常由主索引和辅助索引构成。
主索引是对文件中每个记录的关键字建立的索引,它包括了关键字和指向对应记录的指针。
主索引通常按照关键字的排序顺序组织,以便进行二分查找或其他高效的检索操作。
辅助索引是对文件中非关键字属性或其他属性建立的索引,它包含了关键字和指向对应记录的指针。
辅助索引可以提供多种不同的检索路径,方便不同的检索需求。
多重索引结构通过将文件的索引分层组织,可以减少索引的查找时间,提高了文件的检索效率。
同时,多重索引结构还可以减少索引的存储空间,提高了存储的利用率。
然而,多重索引结构也增加了索引的维护成本,对于频繁更新的文件可能不适合使用。
PDF(Portable Document Format,便携式文档结构)就是一种很有用得文件格式,其最大得特点就是平台无关而且功能强大(支持文字/图象/表单/链接/音乐/视频等)、做PDF得解析,首先要熟悉PDF文件得物理结构与逻辑结构。
PDF文件物理结构可分为以下几块:1、文件头文件头就是PDF文件得第一行,格式如下:%PDF-1、4这就是个固定格式,表示这个PDF文件遵循得PDF规范版本,目前PDF得生成工具,除了官方得acrobat,其她生成得以1、4版本得居多。
对于做PDF开发来说,一个最简单得原则就就是生成PDF得时候尽量符合低版本规范,以保证大多数解析器能支持;解析PDF得时候尽量支持高版本得规范,以保证支持大多数工具生成得PDF文件。
从1、4版本以后,PDF文件得版本并不唯一得只就是在这里表示了,可能后面会改写(catalog得Version词条),所以解析PDF得时候,如果这里得版本大于等于1、4,应该再比较一下catalog里面得version,取其中高一点得版本。
2、对象集合这就是一个PDF文件最重要得部分,文件中用到得所有对象,包括文本/图象/音乐/视频/字体/超连接/加密信息/文档结构信息等等,都在这里定义。
格式如下:2 0 obj、、、end obj一个对象得定义包含4个部分:前面得2就是对象序号,其用来唯一标记一个对象;0就是生成号,按照PDF规范,如果一个PDF文件被修改,那这个数字就是累加得,它与对象序号一起标记就是原始对象还就是修改后得对象,但就是实际开发中,很少有用这种方式修改PDF得,都就是重新编排对象号;obj与endobj就是对象得定义范围,可以抽象得理解为这就就是一个左括号与右括号;省略号部分就是PDF规定得任意合法对象(一共8种,见后面附A)。
可以通过R关键字来引用任何一个对象,比如要引用上面得对象,可以使用2 0 R,需要主意得就是,R关键字不仅可以引用一个已经定义得对象,还可以引用一个并不存在得对象,而且效果就与引用了一个空对象一样。