根据维基百科,到2015年苹果推出的iwork版本
第一章:iwork2008介绍
1、文档结构:
是一个资源合集:压缩格式的(内含文件夹和文件)
在windows下修改iwork的文件后缀为.rar,解压缩后可以看到:

buildHistoryVersion.plist:属性列表

Contents文件夹包含:
PkgInfo
index.xml.gz:使用GZIP压缩的xml文件,包含了文件的内容主体
QuickLook文件夹包含:
Preview.pdf
Thumbnail.jpg

这两个文件是为了预览准备的

thumbs文件夹:
包含使用tiff格式的缩略图
PageCapThumbV2-1.tiff
PageCapThumbV2-2.tiff 
 
2、文档内容存储位置:
内容以xml的格式存放在index.xml.gz中

第二章:iwork2009介绍
1、文档结构:
格式与iwork2008类似,只是xml文件变为非压缩形式
 
Pages文档处理程序包含:
QuickLook文件夹
buildVersionHistory.plist
index.xml
 
numbers表格处理程序包含:
QuickLook文件夹
buildVersionHistory.plist
index.xml
 

key幻灯片程序包含:

QuickLook文件夹
thumbs文件夹
buildVersionHistory.plist
index.apxl
 
2、文档内容存储位置:
内容以xml的格式存放在index.xml/apxl中
 

第三章:iwork2013介绍

重点介绍这个版本。
1、文档结构:
与早期版本不同,iwork2013 本身就是一个文件夹,使用每个应用程序名称为后缀。
Pages 为 .pages
keynodte 为 .key
numbers 为 .numbers
 
Data文件夹:包含图片对象
Metadata文件夹:
BuildVersionHistory.plist:XML的属性列表,提供历史信息
DocumentIdentifier:一个文本文件,包含一个文档的唯一标识符
Properties.plist:一个二进制的属性列表记录了另外一些文档属性
 
Index.zip:zip压缩文件
Index文件夹
Tables文件夹:一些IWA文件
不同的 IWA 文件,包含文件内容
 
IWA 格式文件其实是使用的 Protobuf 结构组织数据流,并使用了 Snappy 进行压缩
IWA: .iwa(iwork Archive)文件
Snappy:是 Google 的压缩程序
Protobuf:是 Google 的数据序列化的二进制文件,用于创建数据结构。是一种轻便高效的结构化数据存储格式,
可以用于类似 Json 和 xml 的存储结构。非常适合作为在网络通讯中的数据载体。
preview.jpg:文件内容预览
 
 
相关连接:
一个iwork的开源项目:https://github.com/obriensp/proto-dump
介绍iwork文件格式的:https://github.com/obriensp/iWorkFileFormat
protobuf的源码连接:https://github.com/google/protobuf

iwork 文件格式分析的更多相关文章

  1. 多媒体(2):WAVE文件格式分析

    目录 多媒体(1):MCI接口编程 多媒体(2):WAVE文件格式分析 多媒体(3):基于WindowsAPI的视频捕捉卡操作 多媒体(4):JPEG图像压缩编码 多媒体(2):WAVE文件格式分析

  2. 实践2.4 ELF文件格式分析

    实践2.4 ELF文件格式分析 1.ELF文件头 查看/usr/include/elf.h文件: #define EI_NIDENT (16) typedef struct { unsigned ch ...

  3. wav文件格式分析详解

    wav文件格式分析详解 文章转载自:http://blog.csdn.net/BlueSoal/article/details/932395 一.综述    WAVE文件作为多媒体中使用的声波文件格式 ...

  4. AMR音频文件格式分析

    AMR音频文件格式分析 1 概要 如今非常多智能手机都支持多媒体功能,特别是音频和视频播放功能,而AMR文件格式是手机端普遍支持的音频文件格式.AMR,全称是:Adaptive Multi-Rate, ...

  5. PE文件格式分析

    PE文件格式分析 PE 的意思是 Portable Executable(可移植的执行体).它是 Win32环境自身所带的执行文件格式.它的一些特性继承自Unix的Coff(common object ...

  6. Linux课题实践四——ELF文件格式分析

    2.4   ELF文件格式分析 20135318 刘浩晨 ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文件(目 ...

  7. linux第三次实践:ELF文件格式分析

    linux第三次实践:ELF文件格式分析 标签(空格分隔): 20135328陈都 一.概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文 ...

  8. 20135337——linux实践三:ELF文件格式分析(32位系统)

    ELF文件格式分析 可重定位文件 十六进制形式显示内容 显示各个段.符号表相关信息 查看各个段信息 elf文件头信息 段表 符号表信息 查看堆栈 具体分析 1.ELF文件头信息(小字节优先,均十六进制 ...

  9. 20135306 2.4 ELF文件格式分析

    2.4   ELF文件格式分析 20135306 黄韧 ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文件(目标 ...

随机推荐

  1. android菜鸟学习笔记15----Android Junit测试

    Android中的Junit测试与Java Junit测试有所不同,不能简单的使用标注…… 假设写了一个MathUtils类,有两个静态方法: public class MathUtils { pub ...

  2. 九度OJ 1052:找x (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7335 解决:3801 题目描述: 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数 ...

  3. AWK命令使用

    前言 文本处理三剑客中,grep强在文本查找,sed强在文本处理,现awk强在文本查找后的输出处理.awk可以在处理文本的过程中使用编程结构(变量.条件判断.循环)以及其内置的变量,这就是它强大的地方 ...

  4. vs2013 solution文件解析

    1 定义一个project Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "render", &quo ...

  5. 【题解】NOI2015软件包管理器

    [题解][P2146 NOI2015]软件包管理器 实际上就是树链剖分板子题. 对于\(install\)操作,直接查询它到\(0\)节点有多少已经安装了的,再用总数减去它. 对于\(uninstal ...

  6. P3968 [TJOI2014]电源插排

    P3968 [TJOI2014]电源插排 线段树维护最长空区间及左端点位置,这个和$nlongn$的动态最大子序和差不多,就不多解释了 $n$较大哈希优化空间 My complete code: #i ...

  7. static语句块的执行时间

    package utfTest; public class Test01 { public static void main(String[] args) { //Person.show(); Sys ...

  8. Mybatis异常_03_Invalid bound statement (not found)

    一.异常信息 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...

  9. listen 58

    Different Brain Regions Handle Different Music Types (Vivaldi) versus (the Beatles) . Both great. Bu ...

  10. zero to one(1)

    How to google 这两天把之前的过期的账号重新弄了一下,在vutrl上的账号,普通的话现在2.5$只提供ipv6地址,如果是想google我觉得这个应该没有什么问题,或者可以买***的账号, ...