根据维基百科,到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. PHP操作:将数据库中的数据保存到Word、Excel中。

    1.首先要把word.excel表放到文件的根目录下 2.定义了一个word类 <?php class word { function start() { ob_start(); ob_star ...

  2. 高性能流媒体服务器EasyDSS前端重构(四)- webpack + video.js 打造流媒体服务器前端

    接上篇 接上篇<高性能流媒体服务器EasyDSS前端重构(三)- webpack + vue + AdminLTE 多页面引入 element-ui> 本文围绕着实现EasyDSS高性能流 ...

  3. mysql系列之3.mysql进阶

    启动原理 mysqld脚本-->mysqld_safe脚本-->mysqld服务-->启动mysql 强制关闭mysql: 三种方法, 不建议用! killall mysqld pk ...

  4. 【题解】 P5021赛道修建

    [题解]P5021 赛道修建 二分加贪心,轻松拿省一(我没有QAQ) 题干有提示: 输出格式: 输出共一行,包含一个整数,表示长度最小的赛道长度的最大值. 注意到没,最小的最大值,还要多明显? 那么我 ...

  5. python 的print 用法

    print(x,y) 等价于 import sys sys.stdout.write(str(x) + ' ' +str(y) + '\n') 从语法上讲,调用python3.0 的print 函数有 ...

  6. IDEA tomcat三步实现热部署

    IDEA tomcat三步实现热部署 添加Artifacts选项 添加Artifacts选项,XXXwar 和 XXXwar exploded二选一,若要热部署须选后者. 设置tomcat部署方案 设 ...

  7. Golang JSON操作汇总

    直接把结构体编码成json数据 package main import ( "encoding/json" "fmt" _ "os" ) t ...

  8. Java AQS详解(转)

    原文地址 一.概述 谈到并发,不得不谈ReentrantLock:而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同 ...

  9. Spring Boot 支持多种外部配置方式

    Spring Boot 支持多种外部配置方式 http://blog.csdn.net/isea533/article/details/50281151 这些方式优先级如下: 命令行参数 来自java ...

  10. ruby 字符串

    字符串处理函数 1.返回字符串的长度 str.length => integer 2.判断字符串中是否包含另一个串 str.include? other_str => true or fa ...