%PDF-1.6    PDF版本号
---------------------------------------------------------------------------------
1  0  obj 
<< /Type  /Catalog 
  /Outlines  2 0 R 
  /Pages  3 0 R 
>> 
endobj 前面那个1 是对象号 0 代表 如果这个对象被修改将会增加1 后面的obj是关键字 (记住咯  下面就不讲了)
<< >> 字典符号 用于括内容 
其中,“/Type  /Catalog”说明了该对象的类型是/Catalog(即“目录”对象),它是PDF文档的根对象。“/Type”中除了有“/Catalog(目录对象)”外,还有“/Outlines(书签大纲对象)”、“/Pages (页面组对象)”以及“页面组对象/Pages”中含有的若干“/Page(页面对象)”等。 
“2 0 R”和“3 0 R”都是对对象的“间接引用”。“2 0 R”就是在引用“2 0 obj”对象,“3 0 R”就是在引用“3 0 obj”对象。
---------------------------------------------------------------------------------
2  0  obj 
<< /Type  /Outlines 
   /First 10 0 R
  /Last 11 0 R 
  /Count  2
>> 
endobj标签对象  
/First 是第一个标签的意思  引用  第10个对象  
/Last 最后一个标签 引用的是 第11个对象
/Count 是标签数量
---------------------------------------------------------------------------------- 3  0  obj 
<<  /Type  /Pages 
  /Kids  [  4 0 R 8 0 R ] 
  /Count  2
>> 
页数组 对象 用来记录 多少个页 
--------------------------------------------------------------------------------
4  0  obj 
<<  /Type  /Page 
  /Parent  3 0 R 
  /MediaBox  [  0  0  612  792  ] 
  /Contents  5 0 R 
  /Resources  <<  /ProcSet  6 0 R 
  /Font  <<  /F1  7 0 R  >> >>
>> 
endobj页对象 
/Parent是指向哪个页数组对象 这里是3 对象 同样 3对象里的页数组里也包含 4对象
/MediaBox  设置页面 大小 
/Contents  内容显示 对象5 
/Resources 指定输入的类型 对象6
/Font 字体
---------------------------------------------------------------------------------
5  0  obj 
<<  /Length  73  >> 
stream 
BT 
/F1  28  Tf 
100 600 Td 
5 Tr 
50 Tz
30 Tw
1 0 0 rg 
0 0 1 RG 
(Hello  Xiao Hui!)Tj 
ET 
endstream 
endobj 页面输入内容对象
/Length             内容的长度
stream   endstream  关键字 内容流对
BT ET               字体关键字对
/F1  28  Tf         指定字体 大小
100 600 Td          指定字体在页面的所在位置
5 Tr 50 Tz 30 Tw 1 0 0 rg 0 0 1 RG  字体样式
(Hello  Xiao Hui!)Tj  输入内容
-------------------------------------------------------------------------------------6  0  obj 
[  /PDF  /Text  ] 
endobj 输入内容的类型
--------------------------------------------------------------------------------------
7  0  obj 
<<  /Type/Font/Subtype/Type1/Name/F1/BaseFont/Helvetica/Encoding/MacRomanEncodin
>> 
endobj 
字体的样式
-------------------------------------------------------------------------------------8  0  obj 
<<  /Type  /Page 
  /Parent  3 0 R 
  /MediaBox  [  0  0  612  792  ] 
  /Contents  9 0 R   /Resources  <<  /ProcSet  6 0 R 
  /Font  <<  /F1  7 0 R  >> >>
>> 
endobj 第二页内容  引用 对象9里的内容 详解看对象4
------------------------------------------------------------------------------------
9  0  obj 
<<  /Length  73  >> 
stream 
BT 
/F1  38  Tf 
100 100 Td 
2 Tr
50 Ts 
5 Tc
1 0 0 rg 
0 0 1 RG
(Hello Hai Ming!)Tj
ET 
endstream 
endobj 第二页 所显示的内容 详解看 对象5
--------------------------------------------------------------------------------
10 0 obj
<< /Title (xiaohui)/Parent 2 0 R/A 13 0 R /Next 11 0 R /First 16 0 R /Last 16 0 R /Count 1>>
 
开头标签
/Title 标签名
/Parent  指定标签属于哪个对象 这里指 对象2
/A  点击触发事件 
/Next  指定下个标签 (必须有这个 要不下面的标签出不来)
/First  /Last 子级标签的 头 和尾
/Count 标签数量
--------------------------------------------------------------------------------
11 0 obj
<< /Title (xiaojie)/A 12 0 R /Parent 2 0 R /Prev 10 0 R /F 0/C[ 0 0 0]
>>
endobj尾标签
意思同上 
/Prev  指定上一个标签 (必须有)
---------------------------------------------------------------------------------
12 0 obj
<</Type/Action/S/GoTo/D 14 0 R>>
endobj
对象10 的触发事件 
-------------------------------------------------------------------------------
13 0 obj
<</Type/Action/S/GoTo/D 15 0 R>>
endobj对象11 的触发事件
---------------------------------------------------------------------------------
14 0 obj
[ 8 0 R/FitH 418.17]
endobj当点击xiaohui标签的时候 页面将跳到 对象14里的方位 
--------------------------------------------------------------------------------
15 0 obj
[ 4 0 R/FitH 701.125]
endobj
当点击haiming 和xiao jie标签的时候 页面将跳到 对象15里的方位 --------------------------------------------------------------------------------
16 0 obj
<< /Title (HAI Ming)/A 12 0 R /Parent 1 0 R /F 0/C[ 0 0 0]
>>
endobj标签 xiaohui 的子标签 
-------------------------------------------------------------------------------
xref 
0  18 
0000000000  65535  f 
0000000009  00000  n 
0000000074  00000  n 
0000000120  00000  n 
0000000179  00000  n 
0000000322  00000  n 
0000000422  00000  n 
0000000364  00000  n 
0000000466  00000  n 
0000000496  00000  n 
0000000555  00000  n 
0000000666  00000  n 
0000000411  00000  n 
0000000377  00000  n 
0000000454  00000  n 
0000000423  00000  n 
0000000511  00000  n 
0000000644  00000  n 交叉引用表如果这个表被破坏,那整个PDF文档就不能被Adobe Acrobat Reader打开了,但Foxit Reader的容错率比较强,它还是可以打开的,所以建议大家把上面的文件保存后,用Foxit Reader打开
第二行“0  18”这两个数,第一个“0”表示“交叉引用表”的起始对象号(这个文件是0,为PDF自定义的对象0,无特殊作用),第二个“18”表示“交叉引用表”的对象总数(包含刚才自定义的0对象)。
其余的行,每行为一个对象。
“0000000000  65535  f”这一行比较特殊。“0000000000”表示该对象在的起始位置为0,生成数为65535,f表示该对象未被引用,这是PDF的规定。
剩下的行中,n表示该对象已被引用
----------------------------------------------------------------------------------------------
trailer 
<<  /Size  18 
  /Root  1 0 R 
>> 
startxref 
625 
%%EOF 这是PDF文件的“文件尾”部分,以trailer对象的开始,“trailer <<  >>”里面是一个字典
“/Size  18”表示该PDF文件中的obj对象总数。
“/Root 1 0 R”表示该PDF文件中的根对象,为“1 0 obj”。
“Startxref 625”表示“交叉引用表”的偏移地址,可以用它来定位PDF文档中所有的对象的相对地址。
一般放在文件最后,是文件结束标志。