PDF知识讲座一pdf(Portable Document Format,便携式文档结构)是一种很有用的文件格式,其最大的特点是
平台无关而且功能强大(支持文字\图象\音乐\视频).今天先讲一下pdf的文件(物理)结构
PDF文件结构可分为以下几块:
1.header:
pdf文件的第一行,格式如下: %PDF-1.3 表示当前文件的版本是1.3(目前最高版本为1.5)2.body:
pdf文件中用到的所有对象,包括文本\图象\音乐\视频\字体\超连接\加密信息等等,格式如下: 2 0 obj
...
end obj 其中省略号部分是pdf规定的任意合法对象(一共8种)3.cross reference table:
所有pdf对象的引用表,其格式如下: xref
0 5
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n 其中,xref是开始标志,表示以下为引用表内容;0 5表示从对象号为0的开始,
连续有5个对象(0,1,2,3,4),分别用5行来表示.每行的前10个数字代表这个
这个对象相对文件头的偏移地址,后面5个数字只有当这个对象被删除的时
候才有用,表示这个对象被删除后又被重新生成后的对象号最后一位f或n表
示对象是否被使用(n表示使用,f表示被删除或没有用)4.trailer:
整个pdf文件的入口点,形式如下:
trailer
<<
/Size 8
/Root 1 0 R
>>
startxref
553
%%EOF /size :这个pdf中总共使用了多少个对象
/root :这个pdf文件的catalog对象的对象号,这是pdf中最顶层的对象
/startxref: 后面的数字表示cross reference table的开始位置
/%%EOF :文件结束符.实际一个pdf文件是很复杂的,但是上面几个部分是确定的,只能多不能少.下一讲我说一下pdf里面8种类型.
下一讲我主要把pdf的8种对象类型说一下:)%PDF-1.0
1 0 obj
<<
/Type /Catalog
/Pages 3 0 R
/Outlines 2 0 R
>>
endobj
2 0 obj
<<
/Type /Outlines
/Count 0
>>
endobj
3 0 obj
<<
/Type /Pages
/Count 1
/Kids [4 0 R]
>>
endobj
4 0 obj
<<
/Type /Page
/Parent 3 0 R
/Resources << /Font << /F1 7 0 R >>/ProcSet 6 0 R
>>
/MediaBox [0 0 612 792]
/Contents 5 0 R
>>
endobj
5 0 obj
<< /Length 44 >>
stream
BT
/F1 24 Tf
100 100 Td (Hello World) Tj
ET
endstream
endobj
6 0 obj
[/PDF /Text]
endobj
7 0 obj
<<
/Type /Font
/Subtype /Type1
/Name /F1
/BaseFont /Helvetica
/Encoding /MacRomanEncoding
>>
endobj
xref
0 8
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n
0000000322 00000 n
0000000415 00000 n
0000000445 00000 n
trailer
<<
/Size 8
/Root 1 0 R
>>
startxref
553
%%EOF
期待下一讲
但是不支持中文滴