PDF文件的基本结构(详细)

365bet现场走地盘 ⌚ 2025-09-28 23:13:22 👤 admin 👁️ 4198 ❤️ 563
PDF文件的基本结构(详细)

1 Header部分

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

%PDF–1.0 %PDF–1.1 %PDF–1.2 %PDF–1.3 %PDF–1.4 %PDF–1.5 %PDF–1.6 %PDF–1.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之间是尾部字典,由包含在双尖括号(<<…>>)中的键值对组成。

相关数据

放黄不收费十大免费直播实测推荐:这些平台真的靠谱吗?

放黄不收费十大免费直播实测推荐:这些平台真的靠谱吗?

为什么大家都在找免费直播平台? 现在刷手机看直播已经是家常便饭了,但很多人发现,想找放黄不收费十大免费直播就像大海捞针。要么是打

08-06 365bet赌城
[2023] 如何删除 iPhone 上的购买历史记录

[2023] 如何删除 iPhone 上的购买历史记录

有时我们想删除我们的购买历史记录,这样除了我们之外没有人可以看到它。 那么,除了学习之外,实现这一目标的最佳方法是什么? 如何在iP

07-05 365bet现场走地盘
wps怎么移动表格

wps怎么移动表格

在日常办公中,WPS表格作为强大的数据处理工具,其操作便捷性备受用户青睐。其中,移动表格是常见的操作之一,无论是为了调整数据布局还

08-07 best365中国官网
金星为什么可以这么“嚣张”地活着

金星为什么可以这么“嚣张”地活着

谁红他撕谁,这几年又向“小鲜肉”开炮,怒斥某明星耍大牌,在保姆车里啃地瓜还大呼辛苦。气愤直言道:“二十多岁就想有话语权,你有什

08-24 best365中国官网
路由器为什么需要刷固件

路由器为什么需要刷固件

路由器通过刷固件可以选择更多功能更强大的操作系统,以满足其网络需求。同时还可以修复安全漏洞、增强其网络安全性,并且刷固件可以为

07-25 365bet现场走地盘
【图】限量价17.99万起 岚图知音正式上市

【图】限量价17.99万起 岚图知音正式上市

[汽车之家新车上市] 10月13日,岚图知音正式上市,上市即交付。新车共计推出4款车型,售价区间为19.69-23.69万元,长续航智享版限量优惠价17.99

08-10 best365中国官网