pdf3.1-3.5语法总结.docx

上传人:wux****ua 文档编号:9107703 上传时间:2020-04-03 格式:DOCX 页数:6 大小:290.53KB
返回 下载 相关 举报
pdf3.1-3.5语法总结.docx_第1页
第1页 / 共6页
pdf3.1-3.5语法总结.docx_第2页
第2页 / 共6页
pdf3.1-3.5语法总结.docx_第3页
第3页 / 共6页
点击查看更多>>
资源描述
根据前段时间对pdf常用语法的学习,对pdf语法中的词法约定、对象、过滤器和文件结构进行了以下简单的总结。1、PDF字符集:常规字符、分隔符、空白符。2、空白符用来控制pdf语法结构全部空白符列表十进制代码十六进制代码八进制代码名称000000空 (NUL)909011换行 (HT)100A012行末填充符 (LF)120C014表格填充符 (FF)130D015回车 (CR)3220040空格 (SP)3、分隔符(, ), , , , , , /,和 % 是特殊符。4、除了空白符和分隔符之外的字符都是常规字符。5、PDF是大小写敏感的。6、PDF 片断:abc% comment /%) blah blah blah123在语法上等同于:abc123%后是pdf文件中的注释内容7、成对的圆括号中的内容是文字字符串:(This is a string) (This(is(also)a)string)(Strings may contain new linesLike this)()%String may be null8、文字字符串中可以出现转义字符,或者出现非打印ASCII字符,全部列表如下,非此表所列的字符若跟在转义字符后会被直接忽略掉。表格 3.2 文字串中的转义字符Sequence (序列) Meaning (意义)n Line feed (LF) 行填充符r Carriage return (CR) 回车符t Horizontal tab (HT) 水平 TAB 符b Backspace (BS) 后退符f Form feed (FF) 表格填充符( Left parenthesis 左括号) Right parenthesis 右括号 Backslash 反斜线ddd Character code ddd (octal) 字符代码 (八进制)9、如果字符串过长,不能放在同一行中,在行末可以用反斜线跨行分开,例如:(This two strings和 (This two strings are the same.) 是一样的 are the same.)10、ddd 转义字符提供一种方法来呈现可打印的ASCII字符集以外的字符的方法:(This string contains 245two octal characters307.) 数字ddd可以是3个以内的八进制阿拉伯数字,忽略超高位(不被转义):(0053)表示一个包含两个字符的文字字符串,005(Control-E)和数字3(053)和(53)都只表示一个字符加号“+”所对应的八进制ASCII码05311、十六进制字符串用尖括号括起来:每两位是一个字节,如果总共是奇数位则最后补0,例如:是一个3个字节的串,包含的十六进制字符是 90,1F 和 A3, 是一个 3 个字节的串,包含的十六进制字符是 90,1F 和 A0。12、姓名对象是用一个斜线字符(/)引导的,姓名对象没有内部结构,是原子对象,姓名中只能包含常用字符,不能有空格字符和分隔符,可以有转义字符。13、通过写 2 位数字十六进制代码任何字符都有可能含在名称中,以字符#号在前引领:表格 3.3 使用#号字符的文字名称实例文字名称 结果/Adobe#20Green Adobe Green/PANTONE#205757#20CV PANTONE 5757 CV/paired#28#29parentheses paired()parentheses/The_Key_of_F#23_Minor The_Key_of_F#_Minor/A#42 AB带#的名称/A#20B有4个字符 (/, A, space, B),而不是6个。14、数组对象,一个数组被写成是含在方括号( and )中的一系列的对象集合,例如:549 3.14 false (Ralph) /SomeNamePDF 只支持一维数组。更高维的数组可以用数组嵌套数组的方式来构建。15、字典对象,以双尖括号(并不是中文的书名号)括起来的键值对内容为字典对象,以一个简单的例子来说明字典对象: /Type /Example /Subtype /DictionaryExample/Version 0.01/IntegerItem 12/StringItem (a string)/Subdictionary 键值对的键必须是姓名对象以/开头,值可以是任意的对象,例如字典对象。值为空的字典条目也相当于空,也就是这个条目不存在。16、流对象就像串对像,是一系列字节。但是他不同于字符串对象必须一次性读取,可以逐步读取一个流,它的长度是无限的。潜在数据量大的对象,如图形和页面说明,都用流来表示。一个流包含一个字典,之后内容的头尾用关键字 Stream 和endstream 包含起来:dictionarystream Zero or more bytes Endstream17、流对象字典。流对象中的字节可能包含在外部文件中,这样会在流字典中指定文件所在位置,此时stream 和 endstream 的任何字节都被忽略。还有一些流字典中通用的字段在下表中列出:KEY关键字 TYPE 类型 VALUE 值Length Integer (必选值)从关键字 stream 之前的行开始部分到关键字 endstream 之前的最后字节之间的字节数。(endstream 之前也有可能有附加 EOL 标识,它不含在计数之内,也不是流数据逻辑部分。)Filter Name or array (必选值)一种过滤器名称,被用来处理关键字 stream 和 endstream 之间的流数据,名称或数组 或是这些名称的一类数组。多个过滤器必须以它们被应用的顺序来指定。DecodeParms dictionary or array (必选值)一个参数字典或参数字典的数组,被 Filter 指定的过滤器使用。F file specification (可选;PDF1.2 版本)包含流数据的文件。如果这个选项存在,stream 和 endstream之间的字节被忽略。过滤器由FFilter而不是Filter指定,过滤器参数由FDecodeParms而不是 DecodeParms 指定。但是长度选项仍然指定那些字节数。(通常 没有字节并且长度值为 0。)FFilter name or array (可选;PDF1.2 版本)一种过滤器名称,被用来处理流中的扩充文件的数据,或这些名称的一类数组。FDecodeParms dictionary or array (可选;PDF1.2 版本)一类参数字典,或这些字典的一类数组,被由 FFilter 指定的过滤器使用。使用规则与 DecodeParms 相同。DL Integer (可选;PDF1.5 版本)一个表示 解码(无过滤器)流中字节编号的非负整数。比如,它可以被用来测定是否有足够磁盘空间将流读取到一个文件。这个值只被看成是一个提示;某些流过滤器,不可能准确测定这个值。18、PDF 文件中的任何对象都会被标记为间接对象,通过这个标识符其它对象都可以引用它,间接对象标识符由 对象编号 和 生成数 两部分组成。间接对象除了标识符之外,还有位于关键字 obj 和 endobj之间括号中的值。比如,下面的定义:12 0 obj(Brillig)Endobj用一个对象编号 12,一个生成编号 0 和 Brillig 值定义一个间接串对象。19、过滤器是一个流特定规范的可选部分,指出流中的数据在使用前如何被解码。多个过滤器可以被串联成一个管道,就是通过管道的流要依次通过 2 个或多个解码转换,例如:/Filter /ASCII85Decode /LZWDecode 代表流数据在使用前需要先经过ASCII85解码 再经过LZW解码。表3.15是标准过滤器名称和介绍(需要具体解码算法原英文pdf有详细说明):20、PDF文件结构包括:文件头、主体、交叉引用表和追踪器。21、文件头识别与PDF文件相一致的说明版本。一个与PDF1.5版本相应的报头部分应是:%PDF-1.5 ,虽然它与PDF注释的格式相似,但它在pdf文件第一行,同pdf文件内容最后一行%EOF一样并不被看做是注释内容。PDF文件是向下兼容的,能处理高版本pdf文件的程序可以直接处理更低版本的pdf文件。PDF文件的版本号是可以通过目录字典进行增量修改的。22、交叉引用表包含的信息允许对文件中的间接对象进行随意访问,以便不需要阅读整个文件即可定位任何特殊对象。它是是PDF文件唯一有固定格式的一部分,首先,整个表包含一个单一的部分,每当文件更新时,一个附加部分会被添加到交叉引用表中。交叉引用表以xref占一行来引导。使用一个例子在介绍交叉引用表中的单独的一个条目:0123456789 00000 n EOL首先是一个十位数字的字节偏移值,如果必要就用0来填充,代表从文件开始到对象开始所有的字节数。然后是5位代码的生成数,如果必要就用0来填充。然后是代表这个条目是否在使用中的标识n(使用中),f(闲置)来区分,最后是一个占两位的行末标识。显示了一个参照表部分,它由一个带有六个选项的子部分构成:4个选项在使用中(对象编号为1,2,4和5),2个选项闲置(对象编号为0和3)。对象编号3已经被删除,而3下面要创建的对象的编号被赐予生成编号7。 显示一个有四个子部分的参照表部分,总共包含5个选项。第一个子部分包含一个选项,用于闲置的对象编号0。第二个子部分包含一个选项,用于在使用中的对象编号3。第三个子部分包含2个选项,用于在使用中的对象编号23和24。对象编号23已经被重复使用过,可以从它的生成编号是2 这个事实中判断出来。4个子部分共同包含一个选项,用于在使用中的对象编号30。23、文件跟踪器就有如下整体结构:PDF文件跟踪器使得应用程序在阅读文件时能够快速的搜索到参照表和某个特殊对象的位置。应用程序会从尾部开始读取PDF文件。最后一行是文件结束符号%EOF。前面两行包括关键字startref和字节偏移值-从文件开始部分到最后面参照表部分中的关键字xref的前一行。放置在startref行前面的是跟踪器字典,由关键字trailer和紧跟后面的含在双尖括号号里面的键值对构成。具体的一个从未被更新过的文件追踪器(无Prev选项)实例如下:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!