OFD文件结构解析

  • 文件结构
  • 示例解析
  • 主入口文件(OFD.xml)
  • 根目录文件(Document.xml)
  • 文档自身资源索引(DocumentRes.xml)
  • 文档公共资源索引(PublicRes.xml)
  • 页面块(Page_0/Content.xml)


ofd文件格式 java ofd文件格式详解_文件名

文件结构

OFD文件本身是压缩文件,文件名不是文件的一部分,是文件系统的一部分。文件名只是文件在文件系统中的映射标记,文件本身并不包含文件名。

ofd文件格式 java ofd文件格式详解_文档资料_02

文件名

说明

DOC_N

第N个文档的文件夹

OFD.XML

文件主入口文件,一个包内存在且只存在一个OFD.xml文件,此文件名不应修改

Document.xml

文档的根节点

Page_N

第N页文件夹

Content.xml

第N页的内容描述

PageRes.xml

第N页的资源描述

Res

资源文件夹

PublicRes.xml

文档公共资源索引

DocumentRes.xml

文档自身资源索引

Image_M.png/Font_M.ttf

资源文件

Signs

数字签名存储目录

Singatures.xml

签名列表文件

Sign_N

第N个签名/签章

Signature.xml

签名/签章描述文件

Seal.esl

电子印章文件

SignedValue.dat

签名值文件

示例解析

test.ofd文件第一页内容:(“你好世界”为注释)

ofd文件格式 java ofd文件格式详解_文档资料_03


test.ofd文件第二页内容:

ofd文件格式 java ofd文件格式详解_ofd文件格式 java_04


修改OFD文件后缀为.ZIP,解压得到OFD文件的文件结构:

ofd文件格式 java ofd文件格式详解_xml_05

主入口文件(OFD.xml)

ofd文件格式 java ofd文件格式详解_文件名_06


主入口文件包含Version(版本号)、DocType(文档格式类型)、DocBody(文档对象入口)、DocInfo(文档元数据描述)、DocRoot(根节点文档)等信息。

根目录文件(Document.xml)

ofd文件格式 java ofd文件格式详解_ofd文件格式 java_07


根目录包含CommonData(文档公共数据)、Pages(页树)、大纲、书签等等。

CommonData(文档公共数据):

  • MaxUnitID:当前文档中所有对象使用标识的最大值,初始值为0.用于文档编辑,向文档中戏赠对象时,需要分配新的标识。
  • PageArea:指定文档页面区域的默认大小和位置。
  • PublicRes:公共资源序列。
  • DocumentRes:文档资源序列。
    Pages(页树):
  • Page:页节点
  • ID:该页的标识
  • BaseLoc:指向页对象的描述文件

文档自身资源索引(DocumentRes.xml)

ofd文件格式 java ofd文件格式详解_文档资料_08


指向第二页内容中的图片。

文档公共资源索引(PublicRes.xml)

ofd文件格式 java ofd文件格式详解_ofd文件格式 java_09

页面块(Page_0/Content.xml)

部分代码:

ofd文件格式 java ofd文件格式详解_文档资料_10


TextObject:文字对象

  • Boundary:外接矩形,采用当前空间坐标系(页面坐标或其它容器坐标),当图元绘制超出此矩形区域时进行裁剪
  • Font:引用资源文件中定义的字型的标识
  • Size:字号,单位为毫米