本發明涉及電子文檔格式的處理技術,特別涉及一種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文檔閱讀器,也可應用于控制臺或服務器后臺,在對腳本語言支持的環境下即可運行。