




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录前言2PDF简介2项目简介3PDF文件格式4PDF区域内容呈现方式4PDF文件头(header)4文件主干部分(body)4参照表(Cross-Reference Table)5trailer 区域6对象流(Object Streams)7参照流(Cross-Reference Streams)9参照流字典 Cross-Reference Stream Dictionary9参照流数据 Cross-Reference Stream Data10与PDF1.4兼容 Compatibility with PDF 1.410PDF文件内置对象11PDF文件支持8种基本类型对象:11布尔值对象11字符串对象11name对象13数组对象13词典对象13流对象14空对象15各种对象的辨识方法15过滤器16PDF支持一个标准过滤器集,主要分成两种:16(1) ASCIIHexDecode过滤器17(2) ASCII85Decode过滤器17(3) LZWDecode 和FlateDecode过滤器17(4) RunLengthDecode过滤器17(5) CCITTFaxDecode Filter17(6) JBIG2Decode Filter17(7) DCTDecode Filter17(8) JPXDecode Filter17(9) Crypt Filter18前言PDF简介PDF全称Portable Document Format,译为可移植文档格式,是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式文件。PDF格式文件目前已成为数字化信息事实上的一个工业标准。Adobe公司设计PDF文件格式的目的是为了支持跨平台上的,多媒体集成的信息出版和发布,尤其是提供对网络信息发布的支持。为了达到此目的, PDF具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。PDF文件使用了工业标准的压缩算法,通常比PostScript文件小,易于传输与储存。它还是页独立的,一个PDF文件包含一个或多个“页”,可以单独处理各页,特别适合多处理器系统的工作。此外,一个PDF文件还包含文件中所使用的PDF格式版本,以及文件中一些重要结构的定位信息。正是由于 PDF文件的种种优点,它逐渐成为出版业中的新宠。PDF规范的发展 PDF规范从1993年到现在,已经有过8个版本,七次版本升级,从最初的pdf1.0.6版本到现在的PDF1.7, 每次的版本升级都会加入一些新的特性。PDF规范的发展升级: 版本新加特性1.1 加入了文档加密(40字节),线索树,名字树,链接,设备独立色彩资源1.2 表单, 半色调屏幕,和其他的一些高级色彩特性, 对中文,日文和韩文的支持1.3 数字签名, 逻辑结构, JavaScript, 嵌入式文件,Masked Images, 平滑阴影, 支持 CID字体的附加色彩1.4 文件加密 (128 字节), 标签式PDF, 访问控制,透明,元数据流1.5文档加密 (公钥), 改良的压缩技术,JPEG 2000 压缩, 可选的内容组,附加的注解类型1.6 文档加密 (AES),增加最大文件支持,加入3D支持,额外的注解类型1.7改进评注(Comment)与保全(Security)的支援,3D的支援功能也获得改善项目简介.PDF文件格式a. header:内含版本资讯。b. body:内含实际的文件内容。c. cross-reference table(简称xref table):内含对象参照的相关资讯。d. trailer:内含指向xref table、body区的重要相关资讯(1)标准的pdf文档格式 PDF区域内容呈现方式PDF是以行的方式来呈现资料的,每一行的结束字符,可以是Carriage Return(ASCII 13)、也可以是Line Feed(ASCII 10)、或是两者的组合(ASCII 13紧接着ASCII 10)。各行内的资料,若遇到%字符,表示该行从%字符后面的所有的资料都是注解,必须加以略除,但有一个例外,那就是流对象(stream object)的内容,并非以行的方式呈现,必须另行处理。另外要注意的是,PDF里的资料是大小写有关的。PDF文件头(header)PDF文件的首行就是header部分,声明PDF文件的版本号header只有一行注解文字,且固定以”%PDF-“开头,后面紧接着PDF的版本例如:%PDF-1.3文件主干部分(body)一个文件的主干部分包括表示文档内容的对象。对象是文档的基本类型,表示文档的各个组成部分,如字体,页面,和实例图形。从PDF1.5开始,主干部分也可以包含对象流,每个对象流都包含一系列间接对象。参照表(Cross-Reference Table)参照表包含的信息允许对文件中的间接对象进行随意访问,以便不需要阅读整个文件即可定位任何特殊对象了。(从PDF1.5开始,某些或所有的参照表信息也可以被含在参照流中。 参照表是PDF文件唯一有固定格式的一部分,每个参照表部分都从一个包含关键字xref的行开始。跟着这个行的是一个或多个参照子部分,这些分部可以以任何顺序出现。子部分的构造有益于逐步更新,因为它允许一个新的参照部分附加到PDF文件中来,而包含的选项紧紧只用于已经被附加或删除的对象。对一个从未被更新过的文件,参照部分只包含一个子部分,它的对象编号从0开始。 每个参照表项目固定20 byte, 其格式如下:Byte内容0-9对象所在的文件位置,靠右,不足时补010空白字符11-15generation number,靠右,不足时补0,表示对象的修改次数generation number=65535,一但达到这个数字,该对象编号便不能再使用,而必须另行增加一个编号16空白字符17n表示对象使用中,f表示对象未被使用(free)18-19空白与换行字符以下便是一个xref table的例子:xref -参照表开始的的关键字0 3 -0(开始的对象号),3(后跟的对象个数)000000003 65535 f -对象的在文件中的位置;对象的生成号;对象的状态(f/n)000000127 00000 n000000000 00001 f5 1000004346 00000 n这个Cross-Reference Table 有两个参照子部分:第一个参照子部分是指出了对象0,1,2在文件中的位置(3,127,0)以及说明0,2对象未被使用(f)。第二个参照子部分是指出了对象5在在文件中的位置(4346),以及说明了对象正在使用(n)trailer 区域PDF文件跟踪器使得应用程序在阅读文件时能够快速的搜索到参照表和某个特殊对象的位置。应用程序应从尾段开始阅读PDF文件。文件的最后一行只包含文件的结束符号,即%EOF.前面两行包括关键字startref和字节偏移值从文件开始部分到最后面参照表部分中的关键字xref的开始部分。放置在startref行前面的是跟踪器字典,由关键字trailer和紧跟后面的组成trailer区块的内容如下:trailerstartxrefxref table开始的文档位置%EOFtrailer资料主要由/属性名称 属性值*所组成,以下便是一个例子:/Size 22/Root 2 0 R/Info 1 0 R/Prev 408下表是trailer中各属性的意义:Trailer字典内容列表KEYTYPEVALUESizeinteger (必选项)整个PDF文件的对象个数IDarray 分别表示旧ID与新IDPrevinteger 如果有,后跟数字表示下一个交叉引用表的位置;没有,表示最后一张交叉表Rootdictionary (必选值)文件里存放Catalog的对象编号Infodictionary表示文件里的摘要资讯所在对象编号Encryptdictionary 表示PDF档有加密,其后接的词典资料,便是用来解密用的整个读取trailer和xref table的过程应为 :(1) 由档尾trailer区块里找到startxref,取得第一个参照表开始的文档位置(2) 移到该参照表的位置,开始读取xref table内容(3) 读取后面紧接着的trailer区块内容 (4) 找寻其后紧接的trailer区块中是否有Prev属性,没有即结束(5) 如果有Prev,则其后的数字视为下个xref table的文档位置,回到步骤2对象流(Object Streams)PDF1.5引进了一个全新的流概念,对象流,它包含了一系列PDF对象。对象流的用途是允许压缩更多数目的PDF对象,以此来大量减少PDF文件大小。流中的对象都是指压缩对象。 任何一个PDF对象都可以出现在对象流,以下几种情况例外l 流对象 l 生成编号非0的对象 l 一篇文档的加密字典l 表示对象流字典中Length选项值的对象 除了流的标准关键字外,对象流字典还描述了包含一下选项对象流专用选项KEY关键字 TYPE 类型TYPE 类型 TypeName(必选)Objstrm,表示该对象含有对象流NInteger(必选)对象流中压缩对象的个数FirstInteger(必选)首个压缩对象的字节偏移量(在解压后的流中)ExtendsStream(可选)一个引用对象流,当前对象留被认为是一个扩充流例子解析:/n 3 : 说明对象流中对象的个数为3/first 24 :说明对象流中第一个压缩对象在流中的位置(解压缩后的)11 0 12 547 13 665:对象流中包含的3个对象11,12,13,并指出了对象相对于流中第一个对象的的偏移地址(0,547,665) 参照流(Cross-Reference Streams)从PDF1.5开始,参照信息被存储在参照流中而不是参照表中。参照流提高以下优势: l 更简洁紧凑的表示参照信息。 l 可以访问存储在对象流中的压缩对象,并允许以后加入新的参照选项类型。 参照流是流对象,包含一个字典和一个流对象,参照流字典相当于trailer,流对象相当于参照表。如以下例子所示:注意现在紧跟着关键字startxref的值是参照流的偏移值而不是关键字xref。对于那些全部用参照流的文件(PDF1.5及以上)关键字xref和跟踪器不再被使用。因此,除了startxref address %EOF 片断和标注特例外,一个PDF1.5的文件完全是一序列的对象。参照流字典 Cross-Reference Stream Dictionary除了对所有流和trailer字典的通用选项外,参照流还包含下表所示的选项参照流字典专用附加选项KEYTYPE说明typename值必须是xref(说明该流为参照流)sizeinteger说明参照表中对象的个数indexarray一个数组,第一个值表示为第一个对象的编号,第二个值表示参照流中对象的总数previnteger从文件开始部分到先前参照流的开始部分的子节偏移值。本选项与跟踪器字典(表3.13)中的Prev选项作用相同,(只有当文件有多个参照流的时候才会呈现;在混合参照文件(pdf1.4)中没有意义)Warray参照流数据 Cross-Reference Stream Data 参照流中的每个选项都有一个或多个数据域,第一个数据域指派选项类型,在PDF1.5中,只允许类型0,1,和2。其它的值都被看成是 空值对象引用,这样就允许以后定义新的选项类型数据以渐进的数据域编号编写;每个数据域的长度受W选项中对应的值制约,每个为位置对应的值说明:参照流字典专用附件选项keyfield说明01值为0,表示该对象闲置2下一个闲置对象的对象编号3对象编号被再次使用的生成编号。11值为1,对象正在使用中(不是压缩的对象)2对象的偏移值,从文件的开始部分开始3对象的生成编号,缺省值为:021值为2,对象为压缩对象2存储对象的对象流的对象编号3对象流中对象的属性与PDF1.4兼容 Compatibility with PDF 1.4 不支持PDF1.5的应用程序无法访问被参照流引用的对象。如果一个文件专门使用参照流,那么它就没有办法在这样的应用程序中打开。 PDF1.4中可以建立“混合-参照”的文件,这个文件除了包含由标准参照表和参照流中的对象,还有一个附加选项混合-引用文件中的跟踪器字典的附件选项keyTypevalueXRefStminteger参照流在文件中的位置PDF文件内置对象PDF文件支持8种基本类型对象: l 布尔指 l 整数和实数 l 字符串 l 名称 l 数组 l 字典 l 对象l 流 布尔值对象只有两个值:true和falsePDF提供两种数字对象:整数和实数(含负数),实数必须以小数点的形式出现。注意:PDF不支持非十进制基数(比如16#FFFE)或指数格式(比如6.02E23)的数字字符串对象字符串对象有两种表示法,一般可见字符用括号(),16进制表示法用角号表示例如:(This is a string)文字串(Literal Strings) 文字串是用含在圆括号内的任意字符编写成的。任何一个字符都可以出现在串里面,除了必需做特别处理的 单括号 和反斜线符号,串中成对的括号不需要特别处理如果一行太长写不下去,则可以用反斜线(backslash,)做为续行动作,例如:(These two strings are the same.)等于下面这行:(These two strings are the same.)另外,也可使用反斜杠做为转义字符,转义字符如下表所示,若出现没有在下表中的转义字符,将会被忽略不显示。转义字符说明n换行(Line feed)r归位(Carriage return)t 定位(Horizontal tab)b 倒退(Backspace)f 跳页(Form feed)( 左括号(Left parenthesis) 右括号(Right parenthesis) 反斜杠(Backslash)ddd 8进位转换字符(Character code ddd (octal)其中8进位转换字符并不一定要3个数字字符,只要遇到非0-7的数字,便视为数字结束(但一般建议是补足3个)。必须注意的是,8进位转换出来的字符是允许ASCII 0的NULL字符的。另外,在()里的%并不视为批注起始字符,而是视为字符串资料的一部份,同时在()里若还有成对的(),可不必使用转义字符,在处理时要特别注意此一情况。十六进制串(Hexadecimal Strings)至于16进制的资料必须是成对的,若出现不成对的情况,则必须自动补0,例如,需算成有3个byte的字符串,分别为90、1F及A0。字符串里的空白字符(比如空格键,Tab键,回车键,行填充符,和表格填充符)需略过。name对象名称对象的起始字符为/,其后紧接著名称字符串(大小写有关)。其不能出现空白字符(参照下表 “空白字符”)名称字符串里的字符必须在ASCII 33255之间,且不能是%()/#这几个字符。如果名称中希望含有其它不合法的字符时(ASCII 0的NULL字符除外),必须采用#加两个16进位数字的方式来表示字符码。例如想加入一个空白字符,则可用/Adobe#20Green,实际名称便是Adobe Green。空白字符十进制名字0NULL(NUL)9Tab(HT)10Line feed(LF)12Form feed(FF)13Carriage return(CR)32Space(SP)数组对象一个PDF数组的元素可以是数字,串,字典或其它对象组合,以及其它数组一个数组被写成是含在方括号( and )中的一序列对象PDF只支持一维数组。更高维的数组可以用数组嵌套数组的方式来构建。数组对象的例子549 3.14 false (Ralph) /SomeName词典对象字典对象是一个包含多部分对象的组合表格,称为字典条目。每个条目的第一个元素为关键字,第二个元素是值。关键字必需是一个名称值可以为任何对象。值为空值的字典条目相当于无条目注意:同一个字典中的两个条目不可以有相同的关键字。如果一个关键字多次出现,那么它的值是未给定定义的。字典对象是构建PDF文档最主要的部分。由于字典中的每个条目指定一个属性的名称和值,这样它们就经常被用来把复杂对象的属性聚集并联系在一块字典的编写方式是:一序列含在书名号中的关键字与值的配对。比如: /Type /Example /Subtype /DictionaryExample /Version 0.01 /IntegerItem 12 /StringItem (a string) /Subdictionary 注意:不要混淆书名号与单括号(), 单括号是分隔一个十六进制串的流对象流对象主要记录一连续的任何资料(例如影像资料),其格式如下:流词典对象stream流资料Endstream所有的流都必须是间接引用对象,而且流字典也必须是一个间接引用对象。紧随着流字典的关键字stream后面必须跟一个行末标识符(要么包含一个回车符和是行末填充符, 要么只是一个行末填充符),不会是单独一个回车符。构成流的序列字节,位于关键字 stream 和endstream 之间;流字典指定确切的流的信息。另外,从PDF1.2版本开始,字节可能被包在外部文件中,流内容就是流字典指定文件,并且在stream 和endstream的任何字节都被忽略。 流字典通用属性KEY关键字 TYPE 类型TYPE 类型 Length Integer(必选值)从关键字stream之前的行开始部分到关键字endstream之前的最后字节之间的字节编号。(endstream之前也有可能有附加EOL标识,它不含在计数之内,也不是流数据逻辑部分。) Filter Nam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑方案设计功能布局包括
- 建筑学方案设计方向
- 园区分管领导个人年度工作总结
- 电气安全培训收益课件
- 运城线上营销活动策划方案
- 毕节市安全培训课件
- 建筑水电节能方案设计
- 园建施工方案免.费下载
- 2025-2030中国生酮饮食食品市场竞争深度调查及营销创新战略规划报告
- 吉安钢结构防腐施工方案
- DB63-T 1921-2021 交通运输专业空间数据分类与编码规范
- 2025年部编版八年级道德与法治上册全册教案
- 2025年移动式压力容器充装R2作业证考试练习题库含答案
- 北师大版(2024版)三年级上册第七单元第6节《生活中的小数》教学设计
- 2025年中国银行招聘考试试题及答案
- 土石方工程的合作协议书
- 医疗质量安全专项整治行动自查清单8-患者隐私
- 字体设计字体标志与版式设计
- 2025人教版(2024)八年级上册英语教学计划
- 建筑垃圾处理厂运行管理方案
- 2025年重庆全国导游资格考试(政策与法律法规、导游业务)历年参考题库含答案详解(5套)
评论
0/150
提交评论