新闻资讯 | 控件产品 | 技术文章 | 购物车 | 合作伙伴 | 问题解答 | 电子简报 | PDF论坛 | 资源下载
您现在的位置:技术文章>PDF开发篇 首页|PDF应用篇|PDF开发篇|解决方案

PDF知识讲座(1)

发布日期:2007-1-15 作者:bobob(静思) 出处:http://topic.csdn.net

 

 PDF(Portable   Document   Format,便携式文档结构)是一种很有用的文件格式,其最大的特点是平台无关而且功能强大(支持文字\图象\音乐\视频).今天先讲一下pdf的文件(物理)结构  
  PDF文件结构可分为以下几块:  
  1.header:  
  pdf文件的第一行,格式如下:  
   
  %PDF-1.3  
   
  表示当前文件的版本是1.3(目前最高版本为1.6)  
   
  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源文件,内容是显示一个"hello   world",对照上面的说明应该能看个差不多   
    
  %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

下一讲我说一下pdf里面8种类型.

 

发布人:管理员 【报告错误】·【推荐好友】·【打印文章】
相关评论 本文现有 1 条评论 评分人数: 1 平均分: 5
shepi   2009-6-7 12:05:04
非常不错
相关评论
用户名: 密  码:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
注意:请不要在评论中含与内容无关的广告链接,违者封ID
文章搜索
推荐文章
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
热门点击
一个简单的PDF文件结构的分析(22340)
PHP的FDF文档支持(16147)
用C#制作PDF文件全攻略(13578)
Word转换PDF格式的C#或(12118)
pdfMaker文章:PDF加(11627)
ITextRenderer学习(11083)
PDF文件加密仿真(11036)
怎样用iReport制作Web(10383)
iText PDF概述(1)(9888)
循序渐进学习iTextShar(9833)
热门评论
从pdf文档中提取出文本(8)
PDFlib开发:创建超文本元(2)
客户端自动打印PDF(Prin(2)
浅谈PDFlib中文输出(一)(2)
xml的转换之pdf 2 ((1)
xml的转换之pdf 1 (x(1)
PDF知识讲座(1)(1)
PDFBox使用简介(1)
使用正则表达式计算PDF文档的(1)
word转pdf(1)