随笔分类 -  pdf格式分析

内部参考秋风之刀博客: https://me.csdn.net/blog/steve_cui
摘要:工作上要求使用小容量单片机生成直接生成pdf文件。经过一段时间的摸索,其中参考了libharu,库太大,不适合在单片机上使用页参考了与非网上一位前辈的库,占用的RAM太大,不适合小容量单片机,主要资料是pdf1.7格式文件。自己制作了一个pdf库,其中在text文件大小不足20k,占用ram不足1k 阅读全文
posted @ 2019-07-10 15:21 大黄蜂_001 阅读(1836) 评论(6) 推荐(0)
摘要:%PDF-1.0 % 文件头,说明符合PDF1.0规范 1 0 obj %对象号 产生号(修改次数) << %对象的内容应该是包含在<< 和>>之间的,最后以关键字endobj结束 /Type /Catalog %对象类型:Catalog(跟对象或者称为目录对象) /Pages 2 0 R %包含的 阅读全文
posted @ 2019-07-10 14:58 大黄蜂_001 阅读(1184) 评论(0) 推荐(1)
摘要:件尾部(trailer)如何找到交叉引用表和其他特殊对象 属性: / Size [integer]:指定交叉引用表中的条目数(也计算更新部分中的对象)。使用的数字不应是间接参考。 / Prev [integer]:指定从文件开头到上一个交叉引用部分的偏移量,如果有多个交叉引用部分,则使用该偏移量。该 阅读全文
posted @ 2019-07-10 14:55 大黄蜂_001 阅读(1016) 评论(0) 推荐(0)
摘要:交叉引用表(xref) 其中包含对文档中所有对象的引用。交叉引用表的目的是允许随机访问文件中的对象,因此我们不需要读取整个PDF文档来定位特定对象。每个对象由交叉​​引用表中的一个条目表示。(该表保存了所有间接对象在PDF文件中物理偏移地址;该表在文件中可以存在单个,也可以存在多个。多个交叉引用表通 阅读全文
posted @ 2019-07-10 14:53 大黄蜂_001 阅读(2277) 评论(0) 推荐(1)
摘要:content属性简单当成一个流来处理 流内部属一个画笔,下面介绍画笔属性 文本对象: BT 文本开始 ET 文本结束 文本状态: Tc 字符之间的距离 Tw 字符串之间的距离 Tz 水平缩放,默认100, Tl 行与行之间的距离设置 Tf 文字模式?0~7 Tr Ts 文字在y轴的偏移量 文本定位 阅读全文
posted @ 2019-07-10 14:50 大黄蜂_001 阅读(1413) 评论(0) 推荐(0)
摘要:资源(Resources) 类型:字典 属性: Font :一个字典,内部是该资源包含的各个字体的名称(字体名称F开头) ProcSet :该资源中使用图画还是文字,可选 /PDF /Text /ImageB /ImageC /ImageI 内容(Contents) 类型:数组、流、多个流组成的数组 阅读全文
posted @ 2019-07-10 14:45 大黄蜂_001 阅读(1620) 评论(0) 推荐(0)
摘要:页面(page) 通过页面树访问文档的页面,页面树定义PDF文档中的所有页面。树包含表示PDF文档页面的节点,可以是两种类型:中间节点和叶节点。中间节点也称为页面树节点,而叶节点称为页面对象。最简单的页面树结构可以由单个页面树节点组成,该节点直接引用所有页面对象(因此所有页面对象都是叶子) 属性:( 阅读全文
posted @ 2019-07-08 17:08 大黄蜂_001 阅读(1282) 评论(0) 推荐(0)
摘要:页面树(pages) 通过页面树访问文档的页面,页面树定义PDF文档中的所有页面。树包含表示PDF文档页面的节点,可以是两种类型:中间节点和叶节点。中间节点也称为页面树节点,而叶节点称为页面对象。最简单的页面树结构可以由单个页面树节点组成,该节点直接引用所有页面对象(因此所有页面对象都是叶子) 属性 阅读全文
posted @ 2019-07-08 17:00 大黄蜂_001 阅读(793) 评论(0) 推荐(0)
摘要:引自:https://blog.csdn.net/steve_cui/article/details/82735039 目录(catalog): 文档目录包含对定义文档内容的其他对象的引用。它还包含声明文档在屏幕上显示方式的信息 属性: 例子: 阅读全文
posted @ 2019-07-08 16:41 大黄蜂_001 阅读(1679) 评论(0) 推荐(0)
摘要:pdf的文件体类似于一个大树 有个根对象(catalog),该对象中保存着PDF的很多基本信息,并通过间接引用,辐射到所有的间接对象。 (下图是大概的树形状) 阅读全文
posted @ 2019-07-08 16:23 大黄蜂_001 阅读(1144) 评论(0) 推荐(0)
摘要:引自:https://blog.csdn.net/steve_cui/article/details/81981943 一般情况下,文件头,即,PDF文件的第一行,它用来定义PDF的版本,从而确定该PDF遵循的哪个版本的PDF规范。PDF版本是向下兼容的,即高版本的规范,兼容低版本的规范。目前我见过 阅读全文
posted @ 2019-07-08 16:14 大黄蜂_001 阅读(2474) 评论(0) 推荐(0)
摘要:引自:https://blog.csdn.net/steve_cui/article/details/81948486 一个pdf文件主要是由4部分构成:文件头、文件体、交叉引用表、文件尾 文件头:用来存储PDF版本 文件体:用来存储间接对象,这是构成PDF比重最大的内容 交叉索引表:用来保存各个间 阅读全文
posted @ 2019-07-08 15:49 大黄蜂_001 阅读(968) 评论(0) 推荐(0)
摘要:引自:https://blog.csdn.net/steve_cui/article/details/81912528 pdf的数据类型主要由8种 boolean(布尔型) :关键字为“true”和“false” numberic(数值型) :integer(整数)和real(浮点型) string 阅读全文
posted @ 2019-07-08 15:48 大黄蜂_001 阅读(1731) 评论(0) 推荐(0)