PDF格式分析(二十七)Linearized PDF 线性化 - 文档结构

2024-02-04 21:08

本文主要是介绍PDF格式分析(二十七)Linearized PDF 线性化 - 文档结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线性化PDF文档结构

线性化PDF文件文件中的所有间接对象应分为两组:

  • 第一组应包含文档目录,其他文档级对象以及属于文档第一页的所有对象。 这些对象应按顺序编号,从第二组最后一个编号后的第一个对象编号开始。 (包含hint表的流,称为hint流,可以不按顺序编号)。
  • 第二组应包含文档中的所有剩余对象,包括第一页之后的所有页面,所有共享对象(从多个页面引用的对象,不计算从第一页引用的对象),等等。 这些对象应从1开始按顺序编号。

这些对象组应由两个交叉引用表编制索引。 线性化PDF按顺序由11个部分组成, 所有对象的版本号均为0。

从PDF 1.5开始,PDF文件可以包含对象流(object streams )。 在包含对象流的线性化文件中,需要符合以下条件:

  • 一些附加对象可能不包含在对象流中:如线性化字典,文档目录和页面对象。
  • 存储在对象流中的对象编号,应在主要和第一页交叉引用部分中使用最高范围的对象编号。
  • 对于包含对象流的文件,hint 数据可以仅指定对象流的位置和大小(或未压缩的对象),而不是单个压缩对象。 类似地,共享对象引用应该对包含压缩对象的对象流进行,而不是对压缩对象本身进行。
  • 使用交叉引用流代替传统的交叉引用表。

Part 1: Header
线性化PDF文件应以标准的PDF文件头开头。 线性化与PDF版本号无关,可以应用于1.1或更高版本的任何PDF文件。第二行百分号(25h)后面的二进制字符是代码为128或更大的字符。

这篇关于PDF格式分析(二十七)Linearized PDF 线性化 - 文档结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678799

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页