本发明涉及电子文档格式的处理技术,特别涉及一种OFD格式文档支持脚本的方法。
背景技术:
OFD是一种版式文档格式,全称为开放式版式文档(Open Fixed-layout Document),是国家版式文档格式规范。版式文档是电子文件应用的一个重要门类,是常用的基础办公软件之一,其具有原版原式的呈现特点,即阅读显示与印刷效果一致,真实地保持了文档产生之初的文字、图表、色彩等版式信息,具有高保真的显示和打印效果。
OFD是一种采用“文件+打包”架构的格式标准,文件除资源性文件如图像和多媒体使用流行的外置格式外,都采用XML文件来描述具体业务。
页面描述是版式文档格式中的核心部分,原版原式的呈现特点就靠页面描述文件来保证,同时这也是版式文档中其他数据进行工作的基础。页面描述文件主要规定了页面的图层、图元及其具体属性,OFD的页面描述采用了自定义的页面描述。
OFD采用了ZIP格式作为文件架构的打包方案。对XML文件,统一采用Deflate压缩算法;对于资源文件,可根据其格式灵活选择Deflate压缩或者不压缩。
目前,WEB应用的领域越来越广泛,CS模型(客户端与服务器通信)的产品架构越来越弱化,而目前OFD文档的使用,多数都是基于客户端产品,那么在纯WEB端使用OFD文档就显得很吃力。
同时,现有技术中使用OFD文档都需要借助客户端或浏览器插件来实现;客户端的更新升级或插件的更新升级相对复杂;客户端和插件开发效率低,应用环境复杂。
综上,发明一种使OFD文档支持脚本的方法,势在必行,显得尤为重要。
技术实现要素:
本发明的目的是提供一种文档处理方法,以实现OFD文档支持多种语言格式脚本,从而提高OFD文档的扩展功能,使客户端的更新升级或插件的更新升级更加简单,提高开发效率,改善和简化应用环境。
本发明采用以下技术方案实现上述目的。一种基于OFD文档的脚本化方法,包括支持多种语言格式脚本文件的脚本接口层,在所述脚本接口层下设置以文件内容逻辑信息为基础且使用抽象语法来描述的包含OFD语法的OFD对象层,在所述OFD对象层下设置文件二进制流层;其步骤如下:
1)运行脚本文件:脚本文件由用户指定,脚本文件由脚本语言编写;
2)调用脚本接口:在所述脚本文件中,脚本语言调用脚本接口层中的脚本接口,每个脚本接口都对应了一个操作OFD格式文档的功能;
3)创建OFD对象:在所述脚本接口中,创建OFD对象并将OFD对象添加到OFD对象层中,OFD对象实现该接口对应的操作OFD格式文档的功能;所述OFD对象:负责具体的OFD格式文档操作功能实现,并将操作带来的数据修改传递到文件二进制流层;
4)操作OFD格式文档:在所述OFD对象中,使用OFD对象的功能,对OFD格式文档进行对应操作;
5)写入文件二进制流层:在所述操作OFD格式文档中,将操作文档带来的数据修改写入到文件二进制流层中,所述二进制流层:负责数据的写入修改,并生成文档;
6)生成操作后OFD文档:使用所述文件二进制流层,生成文档。
进一步,所述脚本语言包括Python、Ruby、Perl、JavaScript、PHP或Shell。
进一步,所述文件内容逻辑信息包括:图形、图像、文字、视频、复合对象、动作、注释、自定义标引、扩展信息、数字签名、版本信息和附件。
进一步,所述OFD对象为可操作对象;当需要对OFD文档操作时,脚本函数调用脚本接口层中的脚本接口,然后该脚本接口调用OFD对象中的方法并进行操作;OFD对象将由于操作产生的修改,传递到文件二进制流层中,生成新OFD文档替换原有的OFD文档。
本发明通过将文档的繁琐操作通过脚本完成,极大提高文档的操作效率,特别是对多份文档做同样的操作时,更为明显。提供了OFD文档支持脚本的技术,可应用于不同的OFD文档阅读器,也可应用于控制台或服务器后台,在对脚本语言支持的环境下即可运行,达到高效、运行环境简单的优点。
附图说明
图1是本发明OFD格式文档支持脚本的方法流程图。
具体实施方式
以下结合附图和实施例对本发明作进一步说明。一种基于OFD文档的脚本化方法,包括脚本文件、脚本接口层、OFD对象层、文件二进制流层和OFD文档文件。
脚本文件:由用户指定,可以是Python、Ruby、Perl、JavaScript、PHP、Shell格式;
脚本接口层:Windows平台上的COM技术实现的接口(COM接口),实现对脚本语言的支持;
OFD对象层:包含多个OFD对象,OFD对象是对OFD文档内容逻辑信息和OFD格式语法的抽象描述;OFD对象之间使用层级关系进行逻辑关联,这种层级关系描述了OFD文档的架构;
文件二进制流层:OFD文件以ZIP格式作为文件的打包方案,文件二进制流层即是对OFD文件的ZIP压缩和解压;
OFD文档:是物理磁盘上的OFD文件或网络流数据源。
参见图1,本发明方法包括支持多种语言格式脚本文件的脚本接口层,在所述脚本接口层下设置以文件内容逻辑信息为基础,且使用抽象语法来描述的包含OFD语法的OFD对象层;在所述OFD对象层下设置文件二进制流层。其步骤如下:
1)运行脚本文件1:脚本文件由用户指定,可以是Python、Ruby、Perl、JavaScript、PHP、Shell编写的脚本文件;
2)调用脚本接口2:在所述脚本文件中,运用脚本函数调用脚本接口层中的脚本接口,每个脚本接口都对应了一个操作OFD格式文档的功能;
3)创建OFD对象3:在所述脚本接口中,创建OFD对象,并将该OFD对象添加到OFD对象层中,该OFD对象实现所述脚本接口对应的操作OFD格式文档的功能;
4)操作OFD格式文档4:在所述OFD对象中,对OFD格式文档进行对应操作;
5)写入文件二进制流层5:在所述操作OFD格式文档中,将由于对OFD格式文档进行操作而带来的数据修改,写入到文件二进制流层中;
6)生成操作后的OFD格式文档6:使用所述文件二进制流层,生成新的OFD格式文档。
OFD对象负责具体的OFD格式文档操作功能实现,并将操作带来的数据修改传递到文件二进制流层中;所述文件二进制流层负责数据的写入修改,并生成新OFD格式文档。
运行脚本后,在脚本函数中调用脚本接口层中的脚本接口,然后创建OFD对象并添加到OFD对象层中;通过OFD对象进行OFD格式文档的对应操作,然后将操作文档带来的数据传递到文件二进制流层,由文件二进制流层进行数据的写入修改,最后生成操作后的OFD格式文档。
实施例:现以本发明应用于KGReader阅读器V2.2版本为实施案例作具体说明。KGReader阅读器前一版本(V2.1)使用实例:
用户环境:在Windows7操作系统下,安装了KGReader阅读器V2.1版本,同时也安装了V2.2版本。
用户需求:使用KGReader阅读器,在OFD文档上,每页增加图片水印批注,此操作为批量批注操作。
V2.1版本流程:
步骤1:使用阅读器打开文档;
步骤2:选择批量批注功能菜单;
步骤3:选择水印项;
步骤4:选择图片水印子项;
步骤5:设置增加水印的页范围和水印位置属性;
步骤6:点击选择图片按钮;
步骤7:选择水印图片并确定;
步骤8:点击确定按钮增加图片水印批注。
使用本发明后流程:
步骤1:使用阅读器打开文档;
步骤2:选择运行脚本功能腰菜单;
步骤3:点击选择脚本文件按钮;
步骤4:选择脚本文件并确定;
步骤5:点击运行按钮。
OFD文档支持脚本的技术,可应用于不同的OFD文档阅读器,也可应用于控制台或服务器后台,在对脚本语言支持的环境下即可运行。