PDF reference 1.0-1.7 下载在文章末尾。

Creating PDF(两种间接方式):

1、该应用程序通过调用应用程序编程接口(API)来描述其可打印输出,如Microsoft®Windows®中的GDI或Apple Mac OS中的QuickDraw。一个名为打印机驱动程序的软件组件截获这些调用并解释它们以生成PDF格式的输出。

2、该应用程序直接以某些其他文件格式生成可打印输出,如PostScript、PCL、HPGL或DVI,通过单独的翻译程序将其转换为PDF。

PDF and the PostScript Language:

为了简化内容流的处理,PDF不包括常见的编程语言特性,如过程、变量和控件构造。

语法:

PDF语法分为四个部分:

Objects:

PDF文档是由一组基本类型的数据对象组成的数据结构。第3.1节“词汇惯例”描述了用于书写对象和其他语法元素的字符集。第3.2节“对象”描述了对象的语法和基本属性。第3.2.7节“流对象”提供了最复杂数据类型流对象的完整细节。

File structure:

PDF文件结构决定了对象在PDF文件中的存储方式、访问方式以及更新方式。该结构独立于对象的语义。第3.4节“文件结构”描述了文件结构。第3.5节“加密”文件级机制保护文档内容免受未经授权访问的机制 。

Document structure:

PDF文档结构指定了如何使用基本对象类型来表示PDF文档的组件:页面、字体、注释等。第3.6节“文件结构”描述了整个文件结构;

Content streams:

PDF内容流包含一系列指令涂写一页或其他图形实体的外观。这些指令虽然也表示为对象,但在概念上与表示文档结构的对象是不同的,并且是单独描述的。3.7节“内容流和资源”讨论了PDF内容流及其作为关联的资源。

PDF支持8种基本类型对象:

文件行,文件尾:

每一行由行尾(EOL)标记结束,该标记可以是回车符(字符代码13)、换行符

(字符码10),或者两者都有。

如果文件的行尾标记是单个字符(回车符或换行符),则在其前面加一个空格;如果标记是2个字符(回车符和换行符),则其前面不带空格。因此,条目的总长度总是恰好为20字节。

PDF文件结构:

PDF文件应由以下四个元素构成

一个单行标题,标识文件符合的PDF规范版本•

一个包含文件中包含的组成文件的对象的正文•

一个交叉引用表,包含文件中间接对象的信息•

一个尾部,给出交叉引用表和文件正文中特定特定对象的位置

File Header

PDF文件的第一行应是一个由5个字符%PDF组成的标题,后跟格式为1.N的版本号,其中N是0到7之间的数字。

符合早期版本PDF的文件也符合版本1.7,因此处理PDF 1.7的应用程序也可以接受具有以下任何标题的文件:

%PDF−1. 0

%PDF−1. 1

%PDF−1. 2

%PDF−1. 3

%PDF−1. 4

%PDF−1. 5

%PDF−1. 6

从PDF 1.4开始,应使用文件目录字典中的版本条目(通过文件尾部的根条目,如7.5.5“文件尾部”所述),而不是标题中指定的版本。

File Body:

PDF文件的主体由表示文档内容的一系列间接对象组成。对象是第7.3节“对象”中描述的基本类型,表示文档的组件,如字体、页面和采样图像。从PDF 1.5开始,正文还可以包含对象流,每个对象流包含一系列间接对象;

Cross-Reference Table:

交叉引用表是PDF文件中唯一具有固定格式的部分,它允许随机访问表中的条目。每个交叉引用部分应以包含关键字xref的行开始。该行后面应为一个或多个交叉引用小节,可按任何顺序出现。对于从未增量更新的文件,交叉引用部分应仅包含一个子部分,其对象编号从0开始。

该表包括一个或多个交叉引用部分。每个条目正好有20个字节长,包括行尾标记。有两种交叉引用条目:一种用于正在使用的对象,另一种用于已删除的对象。这两种类型的条目都有相似的基本格式,通过关键字n(表示正在使用的条目)或f(表示免费条目)来区分。使用中条目的格式为nnnnnnnn ggggg n eol,其中nnnnnnn是一个10位字节偏移量ggggg是一个5位生成编号n是一种文字关键字,用于标识使用中条目eol是一个2字符的行尾序列。

解码流中的字节偏移量应为10位数字,必要时用前导零填充,给出从文件开始到对象开始的字节数。应使用一个空格将其与代号隔开。生成号应为5位数字,必要时还应填充前导零。生成号后面应为单个空格、关键字n和由以下内容之一组成的2字符行尾序列:SP CR、SP LF或CR LF。因此,条目的总长度应始终为20字节

条目可以通过两种方式成为自由条目列表的成员。使用基本机制,交叉引用表中的自由条目可以形成一个链表,每个自由条目包含下一个的对象编号。表中的第一个条目(对象编号0)应始终是自由的,并且应具有65535的生成号;它应该是自由对象链接列表的头部。最后一个自由条目(链表的尾部)链接回对象号0。使用第二种机制,该表可能包含其他自由条目,这些自由条目链接回对象编号0,生成号为65535,即使这些条目不在链表本身中。

交叉引用表须包含从0到文件中使用的最大对象编号的每个对象编号的一个条目,即使该范围内的一个或多个对象编号实际上未出现在文件中。

下面显示了一个交叉引用部分,它由一个包含六个条目的子部分组成:四个正在使用(对象编号1、2、4和5),两个空闲(对象编号0和3)。对象编号3已被删除,使用该对象编号创建的下一个对象的代号为7。

File Trailer:

PDF文件的尾部使读取该文件的应用程序能够快速找到交叉引用表和某些特殊对象。文件的最后一行只包含文件结束标记%%EOF。startxref行前面是尾部字典,由关键字尾部和括在双尖括号中的一系列键-值对组成(<<…>>)。因此,预告片的整体结构如下:

Incremental update:

增量更新PDF文件时,应将更改附加到文件末尾,保持其原始内容不变。增量更新的交叉引用部分应仅包含已更改、替换或删除的对象的条目。删除的对象在文件中应保持不变,但应通过其交叉引用条目标记为已删除。添加的部分应包含除前一个部分的前一个条目(如果存在)之外的所有条目,无论是否修改。此外,添加的尾部字典应包含一个Prev条目,给出前一个交叉引用部分的位置(见Ta b l e 15)。每个拖车应以其自己的文件结尾(%%EOF)标记终止。 更新的交叉引用部分应包括对象新副本的字节偏移量,覆盖原始交叉引用部分中包含的旧字节偏移量。

PDF document:

Adobe提供了PDF Service API:

能够以编程方式更改文档,例如重新排序、插入和旋转页面,以及压缩文件等。

Adobe PDF Services API Free Trial :

支持java、python、.Net、以及Node.js编程语言,前6个月可以免费试用,之后的费用没有明确给出。费用具体位置在文件Adobe-Developer-Additional-Terms 的第7页末尾。

adobe中国官方网站:

https://www.adobe.com/cn/

PDF文件解析博客:

PDF文件解析_程序员青菜的博客-CSDN博客_pdf解析

PDF 1.7 文件结构博文链接:(可以自己用记事本打开一个PDF文件,再对照该博文对PDF文件结构进行理解)

pdf reference官方指南之-语法基础和文件结构_子燕若水的博客-CSDN博客_pdf语法

PDF 1.7 文件结构博文链接:(需要csdn会员)

PDF2.0标准PDF2.0specificationPDF2.0refe6-专业指导文档类资源-CSDN下载

Adobe地址:

Acrobat Developer Resources — Acrobat Developer Docs

PDF reference 1.0 - 1.7 以及 Adobe-Developer-Additional-Terms下载,我上传的资源(貌似需要会员):

https://download.csdn.net/download/qq_46664080/86933043?spm=1001.2014.3001.5503

PDF reference下载地址(官方):

https://opensource.adobe.com/dc-acrobat-sdk-docs/pdflsdk/

PDF reference 官方下载处的截图:

PDF reference 1.0-1.7 下载(免费)以及PDF结构介绍相关推荐

  1. PDF怎么删除不要的页面?免费删除PDF页面教程来了

    PDF怎么删除不要的页面?免费删除PDF页面的教程来了,还不知道怎么删除PDF页面的赶紧看过来,无论你是手机用户还是电脑用户,都可以轻松快速免费删除多余的PDF页面,只需一个"金闪PDF编辑 ...

  2. itext html转pdf 图片,itext2.0.8 将 HTML 转换成 PDF, 完美 CSS, 带图片, 自动分页

    itext2.0.8 将 HTML 转换成 PDF, 完美 CSS, 带图片, 自动分页 之前用 itext7 将 html 导出为 PDF, 比较方便, 代码较少, 而且支持 base64 的图片. ...

  3. 原创力文档怎么免费下载_哪里可以下载免费的PDF文档转换器?

    在我们使用电脑的过程中,经常会使用到各种类型的文档,其中PDF文档也非常受欢迎,尤其对PDF文档转换器工具的需求非常广,由此PDF文档转换器也成为了众多技术人员研究的对象,以满足众多使用者的需求. 本 ...

  4. 360解压电脑版安装包_迅捷pdf转换器电脑版安装包下载-迅迅捷pdf转换器安装包免费下载...

    迅捷pdf转换器电脑版安装包是一款有着强大解析技术的专业格式转换工具.无论大家有什么文件需要进行格式转换都可以使用迅捷pdf转换器电脑版安装包,强大的功能一定可以征服你. 迅捷pdf转换器电脑版安装包 ...

  5. 前端下载图片、pdf、excel、world文件;前端下载图片和pdf文件;前端a标签下载图片和pdf文件;下载文件名称不生效原因。

    参考文章1 参考文章2 以下的下载是,拿到了后端给的下载图片的接口地址url > 方法1:将文本或者JS字符串通过 Blob 转换成二进制下载 优点:可以下载,也可以保存名称. //文件流参数和 ...

  6. CAJ转PDF,仅需5秒还免费,PDF文字还能复制

    之前一直想着CAJ转PDF,结果2M以上就要钱?我TM服了,我的CAJ文档刚好2.1M.找了大半天,百度搜索也就那几个. 于是乎,自己做一个吧. 网站在线地址.由于新建立的网站,搜索太难了,干脆娶个名 ...

  7. pdf加密?教您一招免费去掉PDF文件权限

    您有遇到这样的问题吗?好不容易从别处弄来一个PDF,用的时候发现这文件只能查看,不能打印,想修改居然还提示加密了,这种情况该怎么解决呢.今天给大家推荐一款免费且可以批量的进行PDF解密的工具. 首先, ...

  8. 关于pdf在线预览,限制下载打印,pdf.js

    1.在线预览pdf 本人原本是做php开发的,所以开始实现这个功能的时候考虑的是php有没有相应的类库,然后发现百度给出的结果全是file_get_content以及fopen函数,实验之后显示的全部 ...

  9. Softaken Unlock PDF Files v1.0 PDF文件解密

    简介: Softaken Unlock PDF Files 为用户提供PDF文件解密的功能,当我们忘记自己设置的PDF密码,导致文件打不开的时候,就可以通过这款软件来进行快速解锁,用户也能够使用软件对 ...

  10. pdf reference 格式具体说明

    1. PDF概要 1.1. 图像模型 PDF能以平台无关.高效率的方式描叙复杂的文字.图形.排版. PDF 用图像模型来实现设备无关. 图像模型同意应用程序以抽象对象描叙文字.图像.图标.而不是通过详 ...

最新文章

  1. C#利用Graphics类绘制进阶--绘制商品69码EAN-13
  2. 这十大科学文献最烂配图,你可千万别学
  3. D3.tsv与D3.csv加载数据
  4. Caffe: Caffe的Python接口
  5. 2G的完整形式是什么?
  6. Web API应用架构在Winform混合框架中的应用(3)--Winfrom界面调用WebAPI的过程分解...
  7. android 系统dialog的应用
  8. Java搭建网站相关知识整理(新手上路)
  9. FPS游戏-罗技鼠标-通用的压枪宏
  10. g++ 安装python_Python趣用—配平化学方程式!
  11. SQL right()函数
  12. 非科班学弟如何转行斩获 ATM 大厂的 Offer ?
  13. Gradle使用Junit5进行test
  14. 压电式雨量传感器RS485数据解析协议
  15. 20162316刘诚昊 Java Queue的测试
  16. eMMC之分区管理、总线协议和工作模式【转】
  17. python use ftp to download/updown
  18. VMware Station pro15虚拟机的下载与安装
  19. 广播动态注册和静态注册的区别
  20. unity木船模型,古代帆船模型,古船

热门文章

  1. Linux系统分区访问windows分区提示挂载失败
  2. php币对人民币汇率_php汇率(php等于多少人民币)
  3. 流体力学与流体计算力学基础(一)
  4. Unity3D 常用快捷键
  5. 适合java初级程序员找工作的项目
  6. win10系统 专业版 安装教程
  7. 扫描问题 无法识别计算机,我的扫描枪插进去显示无法识别怎么办
  8. 全国基础地理数据库数据预处理
  9. 计算机技术转让增值税,技术转让免征增值税如何开票
  10. 涨点神器!特征金字塔技术总结