PDF学习五:通用数据结构

说明:

PDF支持串和文本串。从PDF 1.7开始,串类型被引申定义为了PDFDocEncoding串, ASCII 串,字节串(byte string).这个引申的定义影响着用串来进行的字符,字形的编码。

PDF reference1.7.pdf 3.8 Common Data Structures

目标:

掌握并能使用通用数据结构。

 

通用数据结构 Common Data Structures

一、串类型 String Types

string

PDF1.6及以前的版本,它可以用于表现任何文本串无法表现的串。从PDF 1.7开始被进一步分为:PDFDocEncoded string, ASCII string,和 byte string。

text string

可读的字符,例如文本标注,bookmark的名称,article名称,文档信息等。它些字符既可用一个字节带有符标记的可以是PDFDocEncodeing或可以用UTF-16BE编码。

PDFDocEncoded string

用于字符或字型单字节表示,使用PDFDocEncoding编码。

ASCII string

用一个字节来表现字符的ASII编码。

byte string

用于描述二进制数据。每个字节8位。它用于表示编码未知的字符或字形。它用于表示像MD5值,签名证书,Web Capture identification值等。

二、Dates

(D:YYYYMMDDHHmmSSOHH’mm’)

YYYY: 年

MM: 月

DD: 日

HH: 小时

mm: 分钟

SS: 秒

O: 时区(+,-,Z)

HH’ 和UI时间差的小时数绝对值

mm’ 和UI时间差的分钟数绝对值

HH 和mm 后的引号是语法的一部分。年份后的所有域均为可选项。(称谓D:,尽管也是可选项,但建议使用。)MM 和 DD的缺省值均为01;其它的数字域缺省值都为0。加号(+)作为O域的值,表示本地时间比UT时间慢,而减号(−)表示本地时间比UT时间快,字符Z表示本地时间与UT时间相同。如果UT信息被指定,那么UT与指定的时间关系为未知。不管是否指定时区,日期必需以本地时间指定。

比如,1998年12月23日,美国太平洋标准时间下午7:52,用串表示如下:

D:199812231952−08'00'

三、Rectangles

[llx, lly, urx, ury]

llx: lower-left x

lly: lower-left y

urx: uper-right x

ury: uper-right Y

四、Name Trees

Name tree提供了类型于项和值的映射的功能。 Name tree和dictionary 有以下不同点:

1)字典中的关键字不同,字典中的关键字是名称对象,而在名称树型结构中却是串。

2)关键字按顺序排列。
3)与关键字相连接的值可以是任何类型的对象。流对象需要由间接对象引用指定。尽管不作要求,但是建议字典,数组,和串对象由间接引用指定,其它PDF对象(空值,编号,布尔,和名称)由直接对象指定。

4)数据结构可以表示一个“关键字-值”配对的任意大的集合,它可以有效的查询无需要求读取整篇PDF文件的数据结构。(相比之下,字典受它所包含的选项编号执行限制制约。

五、Number Trees

类似Name Trees,不同的是关键字是Integer类型,而Name Trees是串类型。以数字升序进行排列。

你可能感兴趣的:(PDF)