(三)pdf的构成之文件头综述
引自:https://blog.csdn.net/steve_cui/article/details/81981943
一般情况下,文件头,即,PDF文件的第一行,它用来定义PDF的版本,从而确定该PDF遵循的哪个版本的PDF规范。
PDF版本是向下兼容的,即高版本的规范,兼容低版本的规范。
目前我见过的版本有:
%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.8(在标准文档里没有,只是遇到一些客户特殊的文件中会出现,非常少见)
以上都是常见的版本号,还有一个特殊的版本,如PDF/X、PDF/E 和 PDF/A,PDF/VT等,它们在PDF文件中表现为文件头版本+OutputIntent相结合来标识版本。
在Catalog字典中,存在Version属性,它的值也是PDF版本号,该版本号如果高与文件头版本号,则采用这里的版本号,否则忽略。这里的Version属性是可选的,通常是在PDF增量写的情况下用到。因为原PDF文件进过编辑后,添加或修改的内容需要遵循的版本比原本更高,而增量写的方式要求原PDF文件内容不修改,所以,通过修改catalog对象中Version,只要增量部分写入catalog对象,就可以改变PDF的版本号。
PDF文件头有些情况下,并不只保存了版本号,还可能在版本号前面加一下用户自定义的内容,用来满足用户的特殊需求。当遇到这种情况时,对文件头的读取算法就要写的灵活一点,不然取值会发生错误,同时还会影响到间接对象读取的问题
(三)pdf的构成之文件头综述的更多相关文章
- Oracle RedoLog-二进制格式分析,文件头,DML,DDL
上篇文章,简单介绍了 RedoLog 是什么,以及怎么从 Oracle Dump 二进制日志.接下来,分析下 Redo Log 二进制文件的格式,主要包括:文件头,重做日志头,DML-INSERT 操 ...
- php通过文件头检测文件类型通用类(zip,rar…)(转)
在做web应用时候,通过web扩展名判断上存文件类型,这个是我们常使用的.有时候我们这样做还不完善.可能有些人上存一些文件,但是他通过修改 扩展名,让在我们的文件类型之内. 单实际访问时候又不能展示( ...
- 常用文件的文件头(附JAVA测试类)
1. MIDI (mid),文件头:4D546864 2. JPEG (jpg),文件头:FFD8FF 3. PNG (png),文件头:89504E47 4. GIF (gif),文件头:47494 ...
- 第三篇——第二部分——第一文 SQL Server镜像简介
原文:第三篇--第二部分--第一文 SQL Server镜像简介 原文出处:http://blog.csdn.net/dba_huangzj/article/details/26951563 镜像是什 ...
- PE文件格式详解,第二讲,NT头文件格式,以及文件头格式
PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) PS:本篇博客 ...
- PE文件解析器的编写(二)——PE文件头的解析
之前在学习PE文件格式的时候,是通过自己查看各个结构,自己一步步计算各个成员在结构中的偏移,然后在计算出其在文件中的偏移,从而找到各个结构的值,但是在使用C语言编写这个工具的时候,就比这个方便的多,只 ...
- sublime 设置新建文件自动添加author(作者)等文件头信息
很多时候, sublime 自带自动添加文件头信息, 但是并不是我们想要比如下面这样的:新建一个python文件 自动添加的author 信息== 上面并不是我想要的, 我想要下面这样的效果:== 这 ...
- PHP文件头BOM头问题
前几天我们公司服务器出现了一个离奇的问题,服务器与本地文件代码完全一致,本地运行正常,到了测试环境服务器之后,各种问题一个又一个浮现,先是后台验证码不显示,以为是session写入失败,又是怀疑gd库 ...
- XBMC源代码分析 6:视频播放器(dvdplayer)-文件头(以ffmpeg为例)
XBMC分析系列文章: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分析 4: ...
随机推荐
- 开源项目 10 CSV
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using Syst ...
- Cogs 727. [网络流24题] 太空飞行计划(最大权闭合子图)
[网络流24题] 太空飞行计划 ★★☆ 输入文件:shuttle.in 输出文件:shuttle.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] W 教授正在为国家航天中心计 ...
- 手把手教你用Python代码实现微信聊天机器人 -- Python wxpy
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 来学习了,微信聊天机器人. 环境要求: Windows / Li ...
- nRF51822 Beacon 扫描请求包的设置
Nordic 公司自己做有 iBeacon的板子和 SDK,很少有人拥有这个SDK,我最近在朋友那也拿到了一个,但是还没有时间看. 现在我们用普通的SDK自带的 Beacon 例程来做开发,开发的时相 ...
- ICEM-实验环
原视频下载地址:https://pan.baidu.com/s/1eSbxiO6 密码: 7114
- 再谈CAP
CAP定理设计者Eric Brewer作为Google基础设施副总裁在时隔二十年后重谈CAP定律. Eric Brewer目前正在推动Kubernetes和容器建设,在这篇采访中:Google sys ...
- git,指南,操作
助你开始使用 git 的简易指南,木有高深内容,;). Tweet 作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics其他语言 english, deutsch, españo ...
- Cesium的Property机制总结[转]
https://www.jianshu.com/p/f0b47997224c 前言 Cesium官方教程中有一篇叫<空间数据可视化>(Visualizing Spatial Data).该 ...
- IntelliJ IDEA Check out from git
点击check out from vesion control 填写git地址,test,clone
- 错误详情:已取消该操作。--------- 在 System.Threading.CancellationToken.ThrowOperationCanceledException()
错误详情:已取消该操作.--------- 在 System.Threading.CancellationToken.ThrowOperationCanceledException() 在 Syste ...