• iwork 文件格式分析


    根据维基百科,到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
  • 相关阅读:
    《算法竞赛进阶指南》0x12 队列 POJ2259 Team Queue
    《算法竞赛进阶指南》0x11栈 单调栈求矩形面积 POJ2559
    《算法竞赛进阶指南》0x11 栈 求解中缀表达式
    19.职责链模式(Chain of Responsibility Pattern)
    16.观察者模式(Observer Pattern)
    17.解释器模式(Interpreter Pattern)
    15. 迭代器模式(Iterator Pattern)
    14.命令模式(Command Pattern)
    12.代理模式(Proxy Pattern)
    13.模板方法(Template Method)
  • 原文地址:https://www.cnblogs.com/etangyushan/p/5305729.html
Copyright © 2020-2023  润新知