OFD文件结构解析
- 文件结构
- 示例解析
- 主入口文件(OFD.xml)
- 根目录文件(Document.xml)
- 文档自身资源索引(DocumentRes.xml)
- 文档公共资源索引(PublicRes.xml)
- 页面块(Page_0/Content.xml)
文件结构
OFD文件本身是压缩文件,文件名不是文件的一部分,是文件系统的一部分。文件名只是文件在文件系统中的映射标记,文件本身并不包含文件名。
文件名 | 说明 |
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文件第一页内容:(“你好世界”为注释)
test.ofd文件第二页内容:
修改OFD文件后缀为.ZIP,解压得到OFD文件的文件结构:
主入口文件(OFD.xml)
主入口文件包含Version(版本号)、DocType(文档格式类型)、DocBody(文档对象入口)、DocInfo(文档元数据描述)、DocRoot(根节点文档)等信息。
根目录文件(Document.xml)
根目录包含CommonData(文档公共数据)、Pages(页树)、大纲、书签等等。
CommonData(文档公共数据):
- MaxUnitID:当前文档中所有对象使用标识的最大值,初始值为0.用于文档编辑,向文档中戏赠对象时,需要分配新的标识。
- PageArea:指定文档页面区域的默认大小和位置。
- PublicRes:公共资源序列。
- DocumentRes:文档资源序列。
Pages(页树): - Page:页节点
- ID:该页的标识
- BaseLoc:指向页对象的描述文件
文档自身资源索引(DocumentRes.xml)
指向第二页内容中的图片。
文档公共资源索引(PublicRes.xml)
页面块(Page_0/Content.xml)
部分代码:
TextObject:文字对象
- Boundary:外接矩形,采用当前空间坐标系(页面坐标或其它容器坐标),当图元绘制超出此矩形区域时进行裁剪
- Font:引用资源文件中定义的字型的标识
- Size:字号,单位为毫米