办公OA您现在的位置是:首页 > 博客日志 > 办公OA

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

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-04-08办公OA 2 0关键字: ofd  ofd文件  格式详解  

如果你是一名技术人员(码农),希望通过编程的方式对OFD格式文件做些什么的话,相信这篇文章可以给你更多的帮助。

OFD标准介绍

什么是OFD

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

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

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

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

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

 MbD无知

OFD学习资源

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

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

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

 MbD无知

 MbD无知

在OFD文件中添加档案章

 MbD无知

 MbD无知

 MbD无知

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

 MbD无知

OFD文件解压

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

 MbD无知

 MbD无知

  MbD无知

文件MbD无知

说明MbD无知

OFD.xmlMbD无知

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

Doc_0/Document.xmlMbD无知

文档的根节点MbD无知

Doc_0/DocumentRes.xmlMbD无知

文档自身资源索引MbD无知

Doc_0/PublicRes.xmlMbD无知

文档公共资源索引MbD无知

Doc_0/Pages/Page_0/Cotent.xmlMbD无知

文档第0 页的内容描述MbD无知

Doc_0/Res/seal.pngMbD无知

文档资源文件MbD无知

 MbD无知

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

 MbD无知

读取相关数据

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

 MbD无知

 MbD无知

 MbD无知

 MbD无知

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

 MbD无知

IDMbD无知

XML文件MbD无知

XPathMbD无知

数据MbD无知

1MbD无知

OFD.xmlMbD无知

ofd:OFD/ofd:DocBody/ofd:DocRootMbD无知

主入口文件路径MbD无知

2MbD无知

Document.xmlMbD无知

ofd:Document/ofd:CommonData/ofd:MaxUnitIDMbD无知

文档全局自增IDMbD无知

3MbD无知

Document.xmlMbD无知

ofd:Document/ofd:CommonData/ofd:DocumentResMbD无知

资源文件路径MbD无知

4MbD无知

Document.xmlMbD无知

ofd:Document/ofd:Pages/ofd:Page[1]MbD无知

首页路径MbD无知

5MbD无知

DocumentRes.xmlMbD无知

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

档案章图片名称MbD无知

6MbD无知

DocumentRes.xmlMbD无知

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

档案章图片资源IDMbD无知

7MbD无知

Content.xmlMbD无知

ofd:Page/ofd:Area/ofd:PhysicalBoxMbD无知

页面尺寸信息MbD无知

 MbD无知

写入数据

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

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

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

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

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

(6)     保存以上所有修改MbD无知

 MbD无知

OFD文件打包

打包并删除临时解压文件MbD无知

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

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

 MbD无知

 MbD无知


MbD无知

转自:https://www.cnblogs.com/WalkingDead/p/11679072.html MbD无知


MbD无知

本文为转载文章,版权归原作者所有,不代表本站立场和观点。

很赞哦! () 有话说 ()