好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

pdf3.1-3.5语法总结.docx

6页
  • 卖家[上传人]:s9****2
  • 文档编号:406505101
  • 上传时间:2023-04-21
  • 文档格式:DOCX
  • 文档大小:291.46KB
  • / 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 在语法上等同于:abc 123 %后是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 characters\307.) 数字ddd可以是3个以内的八进制阿拉伯数字,忽略超高位(不被转义):(\0053)表示一个包含两个字符的文字字符串,\005(Control-E)和数字3(\053)和(\53)都只表示一个字符加号“+”所对应的八进制ASCII码\05311、十六进制字符串用尖括号括起来:<4E6F762073686D6F7A206B6120706F702E>每两位是一个字节,如果总共是奇数位则最后补0,例如:<901FA3>是一个3个字节的串,包含的十六进制字符是 90,1F 和 A3, <901FA>是一个 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) /SomeName]PDF 只支持一维数组。

      更高维的数组可以用数组嵌套数组的方式来构建15、字典对象,以双尖括号<<>>(并不是中文的书名号《》)括起来的键值对内容为字典对象,以一个简单的例子来说明字典对象:<< /Type /Example /Subtype /DictionaryExample/Version 0.01/IntegerItem 12/StringItem (a string)/Subdictionary << /Item1 0.4/Item2 true/LastItem (not!)/VeryLastItem (OK)>>>>键值对的键必须是姓名对象以/开头,值可以是任意的对象,例如字典对象值为空的字典条目也相当于空,也就是这个条目不存在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 (可选;PDF1.2 版本)包含流数据的文件如果这个选项存在,stream 和 endstream之间的字节被忽略。

      过滤器由FFilter而不是Filter指定,过滤器参数由FDecodeParms而不是 DecodeParms 指定但是长度选项仍然指定那些字节数通常 没有字节并且长度值为 0FFilter 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个子部分共同包含一个选项,用于在使用中的对象编号3023、文件跟踪器就有如下整体结构:PDF文件跟踪器使得应用程序在阅读文件时能够快速的搜索到参照表和某个特殊对象的位置应用程序会从尾部开始读取PDF文件最后一行是文件结束符号%%EOF前面两行包括关键字startref和字节偏移值----从文件开始部分到最后面参照表部分中的关键字xref的前一行放置在startref行前面的是跟踪器字典,由关键。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.