根据维基百科,到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. Java 基础系列之volatile变量(一)

    一.锁 两种特性:互斥性(mutual exclusion).可见性(visibility).原子性(atomic) 互斥性就是一次只有一个线程可以访问该共享数据,可见性就是释放锁之前,对共享数据的修 ...

  2. 如果这种方式导致程序明显变慢或者引起其他问题,我们要重新思考来通过 goroutines 和 channels 来解决问题

    https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/09.3.md 9.3 锁和 sync 包 在一些复杂的程序中,通常通 ...

  3. 操作符表示指针指向的底层值 切片 nill 清空 按值引用赋值 获取地址赋值

    package main import "fmt" var thisVisitedUrls [] string func tf() { p := &thisVisitedU ...

  4. Map总结--HashMap/HashTable/TreeMap/WeakHashMap使用场景分析(转)

    首先看下Map的框架图 1.Map概述 1.Map是键值对映射的抽象接口 2.AbstractMap实现了Map中绝大部分的函数接口,它减少了“Map实现类”的重复编码 3.SortedMap有序的“ ...

  5. iOS MVVM+RAC 从基础到demo

    一.关于经典模式MVC的简介 MVC是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式,市面上大部分App都是这样构建的,具体组建模式不细说,iOS入门者都比较了解(虽然不一定能完 ...

  6. vs2010 windows service 项目不能引用类库项目

    在一个windows 服务项目A中,引用了另外一个项目B,可以使用自动完成,引用其他项目中的类,按理,可以自动提示了,应该就是没问题了,但编译时却提示"未能找到类型或命名空间名称" ...

  7. ES6 Class基本用法

    JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子. function Point(x, y) { this.x = x; this.y = y; } Point.pr ...

  8. html5+CSS3实现的炫酷超链接特效

    今天为大家介绍一个非常炫酷的超链接特效.在你做一些前端的网页时可以在里面去用上这些前卫时尚的效果. 这些超链接特性,大都是借助伪元素.svg.HTML5动画来实现的.效果都很漂亮,不信看下面. 用你的 ...

  9. 修改ubuntu14.04命令行启动

    方法1: 原来要想默认不进入xwindows,只需编辑文件”/etc/default/grub”, 把 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 改成GRUB ...

  10. Linux_服务器_04_vim编辑器的使用

    二.参考文档 1.linux系统中如何进入退出vim编辑器,方法及区别