OFD标准介绍

什么是OFD

OFD(Open Fixed-Layout Document) 是电子文件管理的基础标准之一,由于其固定版式呈现的特点,各类文档排版后的固化结果都可使用本标准来承载 ;同时对于各行业管理中有关元数据、语义、数字签名等要求,本标准也提供相应的可扩展机制予以支持。OFD作为基础标准在版式文档范畴内反映了行业管理要求,提供了足够的扩展性,与行业应用中的标准规范是并行的,各行业规范只在版式文档存储格式方面引用本标准。OFD版式文件具有以下特点:

(1)采用XML技术描述文本数据,采用“容器+文档”的方式描述和存储数据;

(2)真实地保持原有文档中文字、图表、公式、色彩等版式信息,且这种特性不随平台变化而改变;

(3)采用二维向量图像模型,可以描述包括文字、图形、图像等经过精密排版的页面像素;

(4)国家层级的自主版式格式,实现了文档的原始内容和批注附加内容的分离保存

 

OFD学习资源

可在国家标准全文公开系统预览《GB∕T 33190-2016 电子文件存储与交换格式 版式文件》标准内容;

OFD阅读器厂商:北京数科网维航天福昕软件

OFD格式转换:北京数科网维文档转换预览,福昕OFD版式办公套件安装完成后可通过虚拟打印机转换为OFD格式,永中DCS

 

 

在OFD文件中添加档案章

 

 

 

准备工作:档案章图片(生成细节略)、OFD文件、Visual Studio IDE

 

OFD文件解压

可将文件后缀名改为zip再解压以查看OFD文件的层次结构。实际编码中需要引入System.IO.Compression.ZipFile包。

 

 

  

文件

说明

OFD.xml

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

Doc_0/Document.xml

文档的根节点

Doc_0/DocumentRes.xml

文档自身资源索引

Doc_0/PublicRes.xml

文档公共资源索引

Doc_0/Pages/Page_0/Cotent.xml

文档第0 页的内容描述

Doc_0/Res/seal.png

文档资源文件

 

ZipFile.ExtractToDirectory(ofd文件路径, 解压目录);

 

读取相关数据

注意:OFD标准中XML文档使用的命名空间为http://www.ofdspec.org/201 6,其标识应为ofd;应在包内各XML文档的根节点中声明defaults:ofd。元素节点应使用命名空间标识,元素属性不使用命名空间。

 

 

 

 

有些厂商转换的OFD文件命名空间为http://www.ofdspec.org或其它,因此需要根据文件指定的命名空间来读取和写入数据。

 

ID

XML文件

XPath

数据

1

OFD.xml

ofd:OFD/ofd:DocBody/ofd:DocRoot

主入口文件路径

2

Document.xml

ofd:Document/ofd:CommonData/ofd:MaxUnitID

文档全局自增ID

3

Document.xml

ofd:Document/ofd:CommonData/ofd:DocumentRes

资源文件路径

4

Document.xml

ofd:Document/ofd:Pages/ofd:Page[1]

首页路径

5

DocumentRes.xml

ofd:Res/ofd:MultiMedias/ofd:MultiMedia/ofd:MediaFile[text()='seal.png']

档案章图片名称

6

DocumentRes.xml

ofd:Res/ofd:MultiMedias/ofd:MultiMedia/ofd:MediaFile[text()='seal.png']/..

档案章图片资源ID

7

Content.xml

ofd:Page/ofd:Area/ofd:PhysicalBox

页面尺寸信息

 

写入数据

(1)     将六格档案章图片复制到解压目录相对路径Doc_N/Res下,Doc_N由数据1决定;

(2)     DocumentRes.xml文件ofd:Res/ofd:MultiMedias路径下创建子元素MultiMedia,DocumentRes.xml路径由数据3决定,并自增数据2写入ID属性;

(3)     在上一步MultiMedia节点创建子元素MediaFile;

(4)     Content.xml文件ofd:Page/ofd:Content/ofd:Layer路径下创建子元素ImageObject,Content.xml路径由数据4决定,并自增数据2写入ID属性;其中Boundary、CTM由数据7计算得出,需将图片像素先转换为毫米再进行计算,ResourceID为第(2)步的自增ID;

(5)     更新Document.xml文件ofd:Document/ofd:CommonData/ofd:MaxUnitID值为数据2;

(6)     保存以上所有修改

 

OFD文件打包

打包并删除临时解压文件

ZipFile.CreateFromDirectory(解压路径, ofd文件路径);

Directory.Delete(解压路径, true);

 

 

 posted on 2019-10-15 17:27  Walking Dead  阅读(4985)  评论(0编辑  收藏  举报