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

相关文章

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1