PDF 文件格式分析(2009-04-09 16:28:23)标签:pdf 毕设 结构 内容 文件 杂谈 分类:网络资源 PDF 的基本语法: 文件的第一行是文件头,指明了该文件所遵从的PDF 规范的版本号,它出现在PDF 文件的第一行。 一个对象的第一行一般有两个数字和关键字“obj”。例如: 3 0 obj << /Ty pe /Pages /Cou nt 1 /Kids [4 0 R] >> endobj 第一个数字称为对象号,来唯一标识一个对象的,第二个是产生号,是用来表明它在被创建后的第几次修改,所有新创建的PDF 文件的对象号应该都是0,即第一次被创建以后没有被修改过。上面的例子就说明该对象的对象号是3,而且创建后没有被修改过。 对象的内容应该是包含在<< 和>>之间的,最后以关键字endobj 结束. 文件的具体分析 %PDF-1.0 文件头,说明符合 PDF1.0 规范 1 0 obj << /Ty pe /Catalog /Pages 3 0 R /Ou tlines 2 0 R >> endobj Catalog 对象(根对象) /Ty pe /Catalog 说明该对象的类型为/Catalog,/Pages 3 0 R,这里/Pages 指的是这个根对象包含的/Pages 的目标是对象号为3 的对象,3 0 R 的意思是对对象3 的引用。 2 0 obj << /Ty pe /Ou tlines /Cou nt 0 >> endobj ou tline 对象(此处它的计数为0,说明没有书签) 3 0 obj << /Ty pe /Pages /Cou nt 1 /Kids [4 0 R] >> endobj pages 对象(页面组对象),/Ty pe /Pages 说明自身的属性,对象的类型为页码,/Cou nt 1 说明页码数量为1,/Kids [4 0 R]说明它的孩子、页的对象号为4,如果有多个页面,就有多个页面对象的引用,例如/Kids [4 0 R 10 0 R], 就说明该 PDF 的第一页的对象号是 4,第二页的对象号是 10。 4 0 obj << /Ty pe /Page /Parent 3 0 R /Resou rces << /Font << /F1 7 0 R >> /ProcSet 6 0 R >> /MediaBox [0 0 612 792] /Contents 5 0 R >> endobj 页对象,/Parent 3 0 R 说明其父对象的对象号为3,及 Pages 对象,/Resou rces << /Font << /F1 7 0 R >> /ProcSet 6 0 R >>说明该页所要包含的资源,包括字体和内容的类型,/MediaBox [0 0 612 792]说明页面的显示大小(以象素为单位),/Contents 5 0 R 说明页面内容对象的对象号为5。 5 0 obj << /Length 44 >> stream BT /F1 24 Tf 100 100 Td (Hello Wor...