php转换ofd文件格式,一种OFD格式文档支持脚本的方法与流程

本发明涉及电子文档格式的处理技术,特别涉及一种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文档阅读器,也可应用于控制台或服务器后台,在对脚本语言支持的环境下即可运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php成品代码,PHP代码

日期当日date(Y-m-d")date(Y-m-d 00:00:00)取日期:年 月 日date("Y", strtotime($startday))date("m", strtotime($startday))date("d", strtotime($startday))上月 下月$last_mont_first_date date(Y-m-01 00:00:00,strtotime…

tp框架中引入php文件,Laravel框架及ThinkPHP框架超级简单的公共文件引入(保留变量)...

为什么要把两个框架放在一起来说呢?额。。。因为TP5.1.x与Laravel实在是太像了,本文主要讲述关于大家顶部及底部文件引入的问题。但是如果顶部和尾部只是单纯的html代码还好说,但是里面通常有变量赋值和循环遍历以及判断等逻辑,这样就带来了比…

pHp30充电宝能用快充吗,65W快充 30分钟充满电 是时候淘汰充电宝了吗?

在过去的一年里,手机快充技术有了新的突破,OPPO推出了65W快充。无独有偶,联想拯救者电竞手机的预热宣传中,号称搭载90W快充。有评测称,使用65W快充,30分钟可以充满一块4000mAh容量的电池,使用90…

php+mockjs,mockjs的常用方法分享

本文主要和大家分享mockjs的常用方法,结合文字和代码和大家讲解,希望能帮助到大家。一.mock.mock()根据数据模板生成模拟数据。更关键的是,我们发起Ajax请求的时候要能够接收到这些数据。这就是Mock.mock()的作用啦!Mock.mock( ru…

php 截取音频文件后缀名,使用PHP从音频流中提取音轨信息

这是一个PHP功能,让您从流媒体URL中提取MP3元数据(StreamTitle)。通常,流服务器icy-metaint在响应中放置一个标题,告诉我们在流中发送元数据的频率。该函数检查该响应头,如果存在,它将用它替换interval参数。否则&…

matlab画圆柱,Matlab 画三维圆柱体

主要学习了画空间圆柱体和空间长方形的绘制方法。有两个surface property:FaceColor和EdgeColor’;先讲FaceColor’,它指定了surface画出曲面的颜色,可以是[r,g,b]的一个向量,分别表示了红绿蓝的颜色配比;也可以是inte…

matlab类间散度矩阵,协方差矩阵和散布矩阵(散度矩阵)的意义

在机器学习模式识别相关算法中,经常需要求样本的协方差矩阵C和散布矩阵S。如在PCA主成分分析中,就需要计算样本的散度矩阵,而有的教材资料是计算协方差矩阵。实质上协方差矩阵和散度矩阵的意义就是一样的,散布矩阵(散度矩阵)前乘以…

把树分成森林 matlab,20170106RF_Matlab 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随 269万源代码下载- www.pudn.com...

文件名称: 20170106RF_Matlab下载 收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 441 KB上传时间: 2017-01-06下载次数: 0提 供 者: yanxiu详细说明:随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随…

inur new.php id,Cmsez(随易)全站系统 0day

程序名称:Cmsez Web Content Manage System v2.0.0文件:comments.php viewimg.php代码:---------------//commentsinclude "mainfile.php";$artnew article();//设定$confirmyes;//yes:需要管理员认证后才能显示,no:直接显示$membe…

PHP红黑源码,红黑树的实现源码(第二次修订版)

/*-----------------------------------------------------------RB-Tree的插入和删除操作的实现算法参考资料:1) <>2) http://lxr.linux.no/linux/lib/rbtree.c作者&#xff1a;http://www.cppblog.com/converse/您可以自由的传播&#xff0c;修改这份代码&#xff0c;转…

python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...

一、环境准备Python版本&#xff1a;3.4编辑器&#xff1a;Pycharmexcel文件&#xff1a;导入的excel模板二、python代码由于工作需要&#xff0c;需要每天定时导入相关excel文件进入后台数据库&#xff0c;由于导入的逻辑比较复杂&#xff0c;所以决定通过python模拟登陆导入网…

php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)

本文是系列文章中的第二篇&#xff0c;上篇讲述了音频播放和频谱数据计算&#xff0c;本篇讲述数据处理和动画的绘制。前言在上篇文章中我们已经拿到了频谱数据&#xff0c;也知道了数组每个元素表示的是振幅&#xff0c;那这些数组元素之间有什么关系呢&#xff1f;根据FFT的原…

php删除尾部字符,php如何删除字符串末尾字符

我们知道字符串删除字符的方式有好几种&#xff0c;今天就来介绍三种php删除字符串最后一个字符的函数&#xff0c;有需要的小伙伴可以参考一下。方法一&#xff1a;substr()函数substr()函数返回字符串的一部分。语法如下&#xff1a;substr(string string, int start, int [l…

empinfo Oracle数据库,Oracle数据库---包

--根据员工号或员工姓名获取员工的信息--根据员工号或员工姓名删除员工的信息--创建包规范CREATE OR REPLACE PACKAGE overload_pkgISFUNCTION get_info(eno NUMBER) RETURN emp%ROWTYPE;FUNCTION get_info(name VARCHAR2) RETURN emp%ROWTYPE;PROCEDURE del_emp(eno NUMBER);P…

oracle查看context,oracle context(上下文)

context在计算机领域翻译为上下文context的信息也就是当前会话中的环境变量&#xff0c;如&#xff1a;登录的session_id&#xff0c;用户名&#xff0c;语言等信息查看context中的属性信息。oracle默认的为我们创建了一个context叫userenv(user environment)SYS_CONTEXT(USERE…

oracle标量子查询的优势,标量子查询

--标量子查询select e.empno, e.ename, e.sal, e.deptno,(select d.dname from dept d where e.deptno d.deptno)as dnamefrom emp e--插入一条数据insert into emp(empno,deptno) values(9999,null)--返回结果15条记录--改成left join(hash outer)select e.empno, e.ename, e…

切割照片php上传,php下ajax的文件切割上传

var myForm document.getElementById("myForm");var upfile document.getElementById("upfile");myForm.onsubmit function() {//获取文件对象var file upfile.files[0];//获取文件大小var fileSize file.size;//一次截取的大小(字节)var CutSize 10…

oracle插补缺失日期,Oracle连接 ORA-28001: 口令已经失效解决方法

cmd进入命令行C:UsersAdministrator>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月 24 15:19:21 2020Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Pr…

PHP 蒙太奇马赛克拼图,AndreaMosaic制作一幅马赛克拼图

大家在网上应该都见过用很多幅图片拼成的马赛克图片&#xff0c;今天小编就为大家介绍AndreaMosaic制作一幅马赛克拼图方法&#xff0c;不会的朋友快快来学习吧&#xff01;软件名称&#xff1a;AndreaMosaic(蒙太奇图片制作软件) V6.1.0.4 中文安装免费版软件大小&#xff1a;…

php mongo 查询count,[PHP] 使用PHP在mongodb中进行count查询

原文&#xff1a;https://www.cnblogs.com/taoshihan/p/12362111.html在php7的mongodb扩展中&#xff0c;当要查询某个集合在某个条件下的数据个数时&#xff0c;可以使用下面的方式来获取。比原生的命令要复杂许多比旧版mongo扩展也复杂许多需要使用到MongoDB\Driver\Command …