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文件中添加档案章

《GB∕T 33190-2016 电子文件存储与交换格式 版式文件》OFD标准学习及应用 - 图1


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

OFD文件解压

可将文件后缀名改为zip再解压以查看OFD文件的层次结构。实际编码中需要引入System.IO.Compression.ZipFile包。
《GB∕T 33190-2016 电子文件存储与交换格式 版式文件》OFD标准学习及应用 - 图2

文件 说明
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。元素节点应使用命名空间标识,元素属性不使用命名空间。
《GB∕T 33190-2016 电子文件存储与交换格式 版式文件》OFD标准学习及应用 - 图3《GB∕T 33190-2016 电子文件存储与交换格式 版式文件》OFD标准学习及应用 - 图4



有些厂商转换的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);
《GB∕T 33190-2016 电子文件存储与交换格式 版式文件》OFD标准学习及应用 - 图5

sealopenssllayervisual studio
本文转载自:https://www.cnblogs.com/WalkingDead/p/11679072.html