pdf文件的基本结构(详细)-皇冠信誉网

大家好!今天让小编来大家介绍下关于pdf文件的基本结构(详细)的问题,以下是酷知号的小编对此问题的归纳整理,让我们一起来看看吧。

1 header部分

pdf文件的第一行应是由5个字符“%pdf-”后跟“1.n”的版本号组成的标题,其中n是0到7之间的数字。例如下面的:

  %pdf1.0
  %pdf1.1
  %pdf1.2
  %pdf1.3
  %pdf1.4
  %pdf1.5
  %pdf1.6
  %pdf1.7

从pdf 1.4开始,应使用文档目录字典中的version 条目(通过文件trailer部分root条目指定版本),而不是标题中指定的版本。

2 body部分

pdf文件的正文应由表示文件内容的一系列间接组成,例如字体、页面和采样图像。从pdf 1.5开始,body还可以包含对象流,每个对象流包含一系列间接对象。例如下面这样:

1 0 obj
<< /type /catalog
  /outlines 2 0 r
  /pages 3 0 r
>>
endobj
2 0 obj << /type outlines   /count 0 >> endobj
3 0 obj << /type /pages /kids [4 0 r] /count 1 >> endobj
4 0 obj << /type /page   /parent 3 0 r   /mediabox [0 0 612 792]   /contents 5 0 r   /resources << /procset 6 0 r >> >> endobj 5 0 obj
<< /length 35 >> stream   …page-marking operators… endstream endobj
6 0 obj [/pdf] endobj

3 cross-reference table 交叉引用表部分

交叉引用表包含文件中间接对象的信息,以便允许对这些对象进行随机访问,因此无需读取整个文件即可定位任何特定对象。

交叉引用表以xref开始,紧接着是一个空格隔开的两个数字,然后每一行就是一个对象信息:

xref
0 7
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n
0000000300 00000 n
0000000384 00000 n

上面第二行中的两个数字“0 7”,0表示下面的对象从0号对象开始,7表示对象的数量,也就是说表示从0到6共7个对象。

每行一个对象信息的格式如下:

nnnnnnnnnn ggggg n eol

nnnnnnnnnn 长度10个字节,表示对象在文件的偏移地址;
ggggg 长度5个字节,表示对象的生成号;
n (in-use)表示对象被引用,如果此值是f (free),表示对象未被引用;
eol  就是回车换行

交叉引用表中的第一个编号为0的对象始终是f(free)的,并且生成号为65535;除了编号0的对象外,交叉引用表中的所有对象最初的生成号应为0。删除间接对象时,应将其交叉引用条目标记为“free”,并将其添加到free条目的链表中。下次创建具有该对象编号的对象时,条目的生成号应增加1,最大生成号为65535;当交叉引用条目达到此值时,它将永远不会被重用。


交叉引用表也可以是这样的:

xref
0 1
0000000000 65535 f
3 1
0000025325 00000 n
23 2
0000025518 00002 n
0000025635 00000 n
30 1
0000025777 00000 n

4 trailer部分

pdf阅读器是从pdf的尾部开始解析文件的,通过trailer部分能够快速找到交叉引用表和某些特殊对象。如下所示:

trailer
<< /size 7
    /root 1 0 r
>>
startxref
408
%%eof

文件的最后一行应仅包含文件结束标记%%eof。关键字startxref下面的数字表示最后一个交叉引用表的xref关键字开头的字节偏移量。trailer和startxref之间是尾部字典,由包含在双尖括号(<<…>>)中的键值对组成。

以上就是小编对于pdf文件的基本结构(详细)问题和相关问题的解答了,pdf文件的基本结构(详细)的问题希望对你有用!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文链接:https://www.andon8.com/443549.html

网站地图