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.pswp.cn/news/533029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533029.shtml
英文地址,請注明出處:http://en.pswp.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 …