没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、PD 文件格式
标准的 文档格式
区域内容呈现方式
是 以 行 的 方 式 来 呈 现 资 料 的 , 每 一 行 的 结 束 字 符 , 可 以 是
()、也可以是 ()、或是两者的组合(
紧接着 )。各行内的资料,若遇到字符,表示该行从字符后面的所有的资料
都是注解,必须加以略除,但有一个例外,那就是流对象( !")的内容,并
非以行的方式呈现,必须另行处理。另外要注意的是, 里的资料是大小写有关的。
文件头(#)
文件的首行就是 # 部分,声明 文件的版本号 # 只有一行注解文
字,且固定以”$%开头,后面紧接着 的版本
例如:e
$&
文件体( ')
一个 文件的文件体包括表示文档内容的对象。对象是文档的基本类型,表示文档
的各个组成部分,如字体,页面,和实例图形。从 ( 开始,主干部分也可以包含对
象流,每个对象流都包含一系列间接对象。
交叉引用表($") *)
交叉引用表包含的信息允许对文件中的间接对象进行随意访问,以便不需要阅读整个
文件即可定位任何特殊对象了。(从 ( 开始,某些或所有的参照表信息也可以被含
在参照流中。
#:内含版本资讯。
':内含实际的文件内容。
""$" *(简称 + *):内含对象参照的相关资讯。
*:内含指向 + *、 ' 区的重要相关资讯
交叉引用表是 文件唯一有固定格式的一部分,每个交叉引用表都从一个包含关键
字 + 的行开始。跟着这个行的是一个或多个参照子部分,这些分部可以以任何顺序出现。
子部分的构造有益于逐步更新,因为它允许一个新的参照部分附加到 文件中来,而包
含的选项紧紧只用于已经被附加或删除的对象。对一个从未被更新过的文件,参照部分只
包含一个子部分,它的对象编号从 开始。
每个参照表项目固定 ',其格式如下:
,'
内容
$-
对象所在的文件位置,靠右,不足时补
空白字符
$
(
,靠右,不足时补 ,表示对象的修改次数
./0(((,一但达到这个数字,该对象编号便不能再使
用,而必须另行增加一个编号
0
空白字符
1
表示对象使用中, 表示对象未被使用()
2$
-
空白与换行字符
以下便是一个 + * 的例子:e
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$参照表开始的的关键字
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$(开始的对象号),(后跟的对象个数)
0((($$$$$$$对象的在文件中的位置;对象的生成号;对象的状态(3)
1
(
&&0
这个 $") *有两个参照子部分:
第一个参照子部分是指出了对象 44 在文件中的位置(414)以及说明 4 对
象未被使用()。
第二个参照子部分是指出了对象 ( 在在文件中的位置(&&0),以及说明了对象正
在使用()
文件尾(*)
文件跟踪器使得应用程序在阅读文件时能够快速的搜索到参照表和某个特殊对象
的位置。应用程序应从尾段开始阅读 文件。
文件的最后一行只包含文件的结束符号,即56。前面两行包括关键字
和字节偏移值--从文件开始部分到最后面参照表部分中的关键字 + 的开始部分。放置
在 行前面的是跟踪器字典,由关键字 * 和紧跟后面的..键值对77组成
* 区块的内容如下:
*
..
* 资料
77
+
+ * 开始的文档位置
56
* 资料主要由83属性名称e属性值9:所组成,以下便是一个例子:
3;
3
3
3<&2
下表是 * 中各属性的意义:
整个读取 * 和 + * 的过程应为e:
=>由档尾 * 区块里找到 +,取得第一个参照表开始的文档位置
=>移到该参照表的位置,开始读取 + * 内容
=>读取后面紧接着的 * 区块内容
=&>找寻其后紧接的 * 区块中是否有 < 属性,没有即结束
=(>如果有 <,则其后的数字视为下个 + * 的文档位置,回到步骤
对象流=6 !">
( 引进了一个全新的流概念,对象流,它包含了一系列 对象。对象流的用
途是允许压缩更多数目的 对象,以此来大量减少 文件大小。流中的对象都是指
压缩对象。
任何一个 对象都可以出现在对象流,以下几种情况例外
)* 字典内容列表
?5@ )@5 AB5
;
(必选项)整个 文件的对象个数
'
分别表示旧 与新
<
如果有,后跟数字表示下一个交叉引用表的位置;没有,表示最
后一张交叉表
"'
(必选值)文件里存放 * 的对象编号
"'
表示文件里的摘要资讯所在对象编号
5"'
"'
表示 档有加密,其后接的词典资料,便是用来解密用的
流对象
生成编号非 的对象
一篇文档的加密字典
表示对象流字典中 # 选项值的对象
除了流的标准关键字外,对象流字典还描述了包含一下选项e
对象流专用选项
?5@ 关 键
字
)@5 类
型
)@5类型
)' C
(必选)6 !,表示该对象含有对象流
C
(必选)对象流中压缩对象的个数
(必选)首个压缩对象的字节偏移量(在解压后的流中)
5+
(可选)一个引用对象流,当前对象留被认为是一个扩充流
例子解析:
3D说明对象流中对象的个数为
3E&D说明对象流中第一个压缩对象在流中的位置(解压缩后的)
(&100(:对象流中包含的 个对象 44,并指出了对象相对于流中第
一个对象的的偏移地址(4(&1400()
&参照流($")
从 ( 开始,参照信息被存储在参照流中而不是参照表中。参照流提高以下优势:
*更简洁紧凑的表示参照信息。
*可以访问存储在对象流中的压缩对象,并允许以后加入新的参照选项类型。
参照流是流对象,包含一个字典和一个流对象,参照流字典相当于 *,
流对象相当于参照表。
如以下例子所示:
注意现在紧跟着关键字 + 的值是参照流的偏移值而不是关键字 +。
对于那些全部用参照流的文件(( 及以上)关键字 + 和跟踪器不再被使用。
剩余26页未读,继续阅读
资源评论
- qibujinglong1102022-07-14需要进一步看, 才知道好不好
shaloujing
- 粉丝: 5
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功