專利名稱:Visio文檔跨平臺(tái)網(wǎng)絡(luò)瀏覽器的實(shí)現(xiàn)方法及軟件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及利用跨平臺(tái)的網(wǎng)絡(luò)編程語(yǔ)言Java和跨平臺(tái)的統(tǒng)一文檔標(biāo)記語(yǔ)言XML來構(gòu)建跨平臺(tái)的Visio文檔網(wǎng)絡(luò)瀏覽器的方法,實(shí)現(xiàn)該方法的Java對(duì)象庫(kù)組件和瀏覽器軟件。
背景技術(shù):
Visio是Microsoft公司作開發(fā)、經(jīng)營(yíng)和維護(hù)的一款功能強(qiáng)大、歷史較為悠久、擁有大量客戶群的辦公室矢量圖形軟件系統(tǒng),但目前只能在Windows操作系統(tǒng)環(huán)境之下運(yùn)行,使得業(yè)已存在的大量Visio文檔只能在Windows環(huán)境下被查閱或打印。在跨平臺(tái)的Linux操作系統(tǒng)異軍突起,與平臺(tái)無關(guān)的Java技術(shù)和XML規(guī)范被廣泛應(yīng)用的今天,Visio文檔對(duì)Windows操作系統(tǒng)的依賴性客觀上限制了大量Visio文檔資源的應(yīng)用與共享范圍,同時(shí)也與我國(guó)電子政務(wù)開發(fā)標(biāo)準(zhǔn)等國(guó)家、國(guó)際標(biāo)準(zhǔn)規(guī)范所不相容。
為了克服Visio對(duì)Windows操作系統(tǒng)的依賴性,特別是在文檔分發(fā)、瀏覽和打印等功能上對(duì)Windows的依賴性,有必要采用目前在國(guó)際上已經(jīng)被標(biāo)準(zhǔn)化組織所嚴(yán)格規(guī)范、在業(yè)界得到廣泛認(rèn)可并被大量應(yīng)用的跨平臺(tái)軟件技術(shù),特別是Java技術(shù)和XML技術(shù),對(duì)Visio文檔的分發(fā)、瀏覽、操作和打印功能進(jìn)行重構(gòu),以增強(qiáng)Visio文檔瀏覽器的軟、硬件平臺(tái)無關(guān)性和便于大量Visio文檔基于網(wǎng)絡(luò)分發(fā)、管理與共享的可用性。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種與計(jì)算機(jī)軟、硬件環(huán)境無關(guān)的Visio文檔網(wǎng)絡(luò)瀏覽器軟件,并可封裝成組件,以便靜態(tài)或動(dòng)態(tài)地嵌入到任何基于Java的應(yīng)用程序中。
為了解決現(xiàn)有技術(shù)存在的上述技術(shù)問題,根據(jù)本發(fā)明的基本方案,提供一種可跨平臺(tái)的Visio文檔網(wǎng)絡(luò)瀏覽器,其組成部分包括Visio XML文檔解析器,基于Microsoft公司公布的Visio XML Schema,對(duì)文檔進(jìn)行解析以讀取其中的格式與內(nèi)容;Visio文檔轉(zhuǎn)換器,通過舍棄Visio原始文檔中的ICON(圖標(biāo))對(duì)象等方法,對(duì)Visio文檔進(jìn)行轉(zhuǎn)換,以降低其文件大小、提高文件解析效率、便于網(wǎng)絡(luò)分發(fā)與傳輸;Visio圖元對(duì)象庫(kù),利用Java語(yǔ)言的數(shù)據(jù)模型或數(shù)據(jù)結(jié)構(gòu),對(duì)Visio文檔中的相關(guān)圖元對(duì)象、關(guān)聯(lián)對(duì)象及文檔對(duì)象進(jìn)行重構(gòu),形成文檔的內(nèi)存對(duì)象模型以及所需的管理功能集;畫板功能庫(kù),利用Java的圖形及文字API,在設(shè)備畫板(屏幕、打印機(jī)或繪圖儀)上展現(xiàn)Visio文檔的矢量圖形和文本段落,并可在屏幕上對(duì)文檔圖形進(jìn)行放大、縮小、旋轉(zhuǎn)、拉伸等操作;接口庫(kù),包括文檔接口對(duì)象、事件接口對(duì)象、坐標(biāo)接口對(duì)象和畫板接口對(duì)象,以實(shí)現(xiàn)與其他應(yīng)用程序的對(duì)接。
根據(jù)本發(fā)明的一個(gè)優(yōu)選方案(方案一),所述的Visio文檔網(wǎng)絡(luò)瀏覽器可以被封裝成一個(gè)Java組件,并可與任何基于Java的應(yīng)用程序進(jìn)行對(duì)接,以增加對(duì)Visio文檔的瀏覽功能或豐富應(yīng)用程序的圖形表現(xiàn)能力。對(duì)接是通過所述瀏覽器組件的接口庫(kù)來完成的,首先,利用文檔接口對(duì)象,可打開或關(guān)閉本地及網(wǎng)絡(luò)上遠(yuǎn)程的Visio文檔或其轉(zhuǎn)換文檔;其次,利用事件接口與具體應(yīng)用系統(tǒng)所發(fā)生的鼠標(biāo)等控制事件進(jìn)行集成,可與用戶的應(yīng)用程序在控制方式上連為一體;第三,通過坐標(biāo)接口所提供的回調(diào)函數(shù)功能,可將用戶應(yīng)用系統(tǒng)的邏輯坐標(biāo)或設(shè)備坐標(biāo)與本組件所管理的畫板(屏幕)坐標(biāo)聯(lián)系起來;第四,利用畫板接口,可使用戶的應(yīng)用程序自如地指定多種文檔繪圖輸出面板,包括屏幕上不同的窗口、打印機(jī)和繪圖儀等。
根據(jù)本發(fā)明的另一個(gè)優(yōu)選方案(方案二),所述的Visio文檔網(wǎng)絡(luò)瀏覽器本身就可以做成一個(gè)獨(dú)立的應(yīng)用系統(tǒng),以瀏覽或打印本地以及網(wǎng)絡(luò)上的Visio XML文檔。
圖1是本發(fā)明的組成結(jié)構(gòu)示意圖。
圖2是基于本發(fā)明方案一的第一實(shí)施例軟件結(jié)構(gòu)示意圖。
圖3是基于本發(fā)明方案一的第一實(shí)施例,將Visio文檔網(wǎng)絡(luò)瀏覽器組件嵌入到電子地圖系統(tǒng)中,以實(shí)現(xiàn)地圖標(biāo)繪功能的效果示意圖。
圖4是基于本發(fā)明方案二的第二實(shí)施例軟件結(jié)構(gòu)示意圖。
圖5是基于本發(fā)明方案二的第二實(shí)施例所顯示的Visio文檔效果示意圖。
具體實(shí)施例方式
圖1中虛線所界定的框架內(nèi)部是本發(fā)明的Visio瀏覽器10的核心組成結(jié)構(gòu)示意圖,其中的Visio XML文檔解析器11用于打開并解析本地或網(wǎng)絡(luò)上遠(yuǎn)程的原始Visio XML文檔,Visio XML文檔轉(zhuǎn)換器12用于將打開的Visio原始文檔轉(zhuǎn)換為內(nèi)部的XML格式,Visio圖元對(duì)象庫(kù)13通過解析Visio XML原始文檔或經(jīng)轉(zhuǎn)換的XML文檔生成Visio圖元、關(guān)聯(lián)及文檔對(duì)象的內(nèi)存映像模型,畫板功能庫(kù)14則根據(jù)Visio圖元對(duì)象庫(kù)的內(nèi)容,在指定的繪圖界面上展示Visio文檔中的矢量圖形及文本段落,接口庫(kù)15提供了四個(gè)接口對(duì)象,以與任何基于Java的應(yīng)用程序進(jìn)行對(duì)接。
為了實(shí)現(xiàn)如上所述的Visio XML文檔解析器11,可以利用Java SDK的SAXAPI機(jī)制,該機(jī)制以事件的方式解析XML文檔標(biāo)記,并以回調(diào)函數(shù)的方式完成數(shù)據(jù)處理。基于Microsoft公司公布的Visio XMLSchema,該解析器既可以生成Visio圖元對(duì)象庫(kù)13,也可以利用Visio XML文檔轉(zhuǎn)換器12生成Visio轉(zhuǎn)換文檔。
由于Visio XML文檔轉(zhuǎn)換器12需要實(shí)現(xiàn)對(duì)Visio文檔的轉(zhuǎn)換并生成內(nèi)部的XML文檔文件,因此需要利用W3C組織的文檔對(duì)象模型(DOM)規(guī)范生成文檔對(duì)象樹并完成所需的轉(zhuǎn)換,然后存儲(chǔ)在新的文件中。對(duì)于這種新文件的后續(xù)讀取,仍以Java SDK的SAXAPI機(jī)制為首選,以提高解析的效率。
在對(duì)Visio的XML原始文檔或其轉(zhuǎn)換文檔進(jìn)行解析的過程中,解析回調(diào)函數(shù)可以根據(jù)文檔標(biāo)記來調(diào)用Visio圖元對(duì)象庫(kù)13的有關(guān)對(duì)象或功能,生成與標(biāo)記相對(duì)應(yīng)的圖元對(duì)象、關(guān)聯(lián)對(duì)象及文檔對(duì)象,從而建立Visio文檔的內(nèi)存映像模型。隨后關(guān)閉打開的Visio文檔。
在畫板功能庫(kù)14的控制與調(diào)用下,Visio圖元對(duì)象庫(kù)13中的內(nèi)容可以在指定的繪圖面板上以矢量圖形的方式進(jìn)行展現(xiàn)。其中在屏幕繪圖的輸出方式下,畫板功能庫(kù)14中的有關(guān)控制功能可以響應(yīng)鼠標(biāo)等事件以俘獲Visio圖元對(duì)象,并對(duì)其進(jìn)行放大、縮小、旋轉(zhuǎn)、拉伸、平鋪、打印等操作。
接口庫(kù)15提供了四個(gè)接口對(duì)象——即文檔接口對(duì)象、事件接口對(duì)象、坐標(biāo)接口對(duì)象和畫板接口對(duì)象,以與任何基于Java的應(yīng)用程序進(jìn)行對(duì)接。其中文檔接口對(duì)象使應(yīng)用程序可以打開或關(guān)閉本地及網(wǎng)絡(luò)上遠(yuǎn)程的Visio文檔或其轉(zhuǎn)換文檔;事件接口對(duì)象提供了事件監(jiān)聽函數(shù),便于應(yīng)用程序?qū)⑵涞怯浀絁ava的事件監(jiān)聽隊(duì)列,并在對(duì)事件響應(yīng)后返回處理結(jié)果,從而使Visio瀏覽器10與應(yīng)用程序在事件流上整合在一起;坐標(biāo)接口對(duì)象提供了坐標(biāo)變換回調(diào)函數(shù)接口,以便實(shí)現(xiàn)邏輯坐標(biāo)、設(shè)備坐標(biāo)與屏幕坐標(biāo)的相互聯(lián)系和轉(zhuǎn)換,從而可在圖形化界面上將應(yīng)用程序與Visio瀏覽器10融為一個(gè)整體;畫板接口對(duì)象可使應(yīng)用程序設(shè)定、選擇或更改Visio畫板功能庫(kù)14的輸出介質(zhì),以實(shí)現(xiàn)文檔瀏覽、打印或電子地圖標(biāo)繪等多種功能。
圖2所示為本發(fā)明第一實(shí)施例示意圖,即將圖1中的Visio瀏覽器10封裝為java庫(kù)組件,并可嵌入到本地應(yīng)用程序21或網(wǎng)絡(luò)應(yīng)用程序22中的實(shí)施方案。其中網(wǎng)絡(luò)應(yīng)用程序22中的虛線表示Visio瀏覽器10可通過Java JVM的對(duì)象庫(kù)加載機(jī)制經(jīng)過網(wǎng)絡(luò)24被下載并被動(dòng)態(tài)地加以連接,從而在邏輯上形成網(wǎng)絡(luò)應(yīng)用程序22的一個(gè)組成部分。
如圖2所示,應(yīng)用程序可以調(diào)用本發(fā)明的Visio瀏覽器10的接口庫(kù),打開本地或網(wǎng)絡(luò)上遠(yuǎn)程的Visio文檔或其轉(zhuǎn)換文檔,指定繪圖面板以展示Visio文檔中的內(nèi)容,通過與事件接口的集成俘獲屏幕上的Visio對(duì)象并進(jìn)行平移、放大、縮小、旋轉(zhuǎn)、拉伸、平鋪、打印等操作,從而實(shí)現(xiàn)對(duì)Visio文檔的瀏覽、打印或利用Visio文檔制作圖標(biāo)以對(duì)電子地圖等專業(yè)圖形進(jìn)行標(biāo)繪等多種功能,其中對(duì)電子地圖進(jìn)行標(biāo)繪的實(shí)例效果如圖3所示。
圖4所示為本發(fā)明第二實(shí)施例示意圖,該實(shí)施例提供了一種專用的Visio XML文檔(或其轉(zhuǎn)換文檔)瀏覽器,能夠以多文檔界面的方式打開Visio XML文檔,并可對(duì)其進(jìn)行平移、放大、縮小、旋轉(zhuǎn)、拉伸、平鋪、打印等操作,其界面及對(duì)Visio文檔的顯示實(shí)例效果如圖5所示。
權(quán)利要求
1.一種Visio文檔跨平臺(tái)網(wǎng)絡(luò)瀏覽器的實(shí)現(xiàn)方法,所述方法包括下列步驟通過解析或者轉(zhuǎn)換Visio軟件的XML格式文檔,從而形成跨平臺(tái)和基于網(wǎng)絡(luò)傳輸?shù)慕y(tǒng)一的文檔數(shù)據(jù)格式。利用跨平臺(tái)的網(wǎng)絡(luò)編程語(yǔ)言(例如Java)的數(shù)據(jù)模型或數(shù)據(jù)結(jié)構(gòu),通過解析Visio的XML文檔或其經(jīng)轉(zhuǎn)換后的XML文檔,進(jìn)而形成瀏覽器軟件的Visio文檔內(nèi)存映像模型。利用跨平臺(tái)的網(wǎng)絡(luò)編程語(yǔ)言(例如Java)的圖形及文字API,對(duì)Visio文檔全部對(duì)象(包括文檔中嵌入的Windows圖形對(duì)象)的繪圖功能逐一進(jìn)行實(shí)現(xiàn),從而能夠在屏幕、打印機(jī)或繪圖儀的面板上以矢量圖的方式精確地展現(xiàn)Visio文檔的內(nèi)容。仿真Visio的對(duì)象操作方法,在屏幕上可對(duì)Visio文檔的內(nèi)容及其組成對(duì)象進(jìn)行平移、放大、縮小、旋轉(zhuǎn)、拉伸、平鋪等操作。利用計(jì)算機(jī)網(wǎng)絡(luò)對(duì)Visio的XML文檔或其轉(zhuǎn)換文檔進(jìn)行分發(fā)、管理、瀏覽、打印及其他處理,從而實(shí)現(xiàn)跨平臺(tái)、基于網(wǎng)絡(luò)的Visio瀏覽器的全面功能。所述方法的特征是采用了跨平臺(tái)的文檔標(biāo)記語(yǔ)言(如XML)和跨平臺(tái)的軟件編程語(yǔ)言(如Java),實(shí)現(xiàn)了與軟、硬件平臺(tái)無關(guān)的Visio文檔存儲(chǔ)格式、文檔數(shù)據(jù)讀取及變換方式、文檔中矢量圖形及文本段落的展現(xiàn)功能以及控制與操作模式,真正實(shí)現(xiàn)了軟件界所熟知的“一處編寫、處處運(yùn)行”的跨平臺(tái)技術(shù)的基本要求。
2.一種基于Java的Visio文檔跨平臺(tái)網(wǎng)絡(luò)瀏覽器組件,利用權(quán)利要求1所述的方法構(gòu)建,其組成部分包括Visio XML文檔解析器,能夠解析本地或遠(yuǎn)程的Visio XML文檔;Visio XML文檔轉(zhuǎn)換器,能夠?qū)isio XML文檔轉(zhuǎn)換為更便于網(wǎng)絡(luò)傳輸?shù)奈臋n;Visio圖元對(duì)象庫(kù),通過對(duì)Visio XML文檔或其轉(zhuǎn)換文檔的解析,生成Visio圖元、關(guān)聯(lián)及文檔對(duì)象的內(nèi)存映像模型;畫板功能庫(kù),能夠在指定的繪圖界面上輸出Visio文檔的矢量圖形或文本段落;接口庫(kù),利用其中的接口對(duì)象可與任何基于Java的其他本地或網(wǎng)絡(luò)應(yīng)用程序進(jìn)行對(duì)接。所述組件的特征在于利用權(quán)利要求1所述的方法、基于Java語(yǔ)言來構(gòu)建,全面實(shí)現(xiàn)了Visio XML文檔跨平臺(tái)網(wǎng)絡(luò)瀏覽器的相關(guān)功能;其組成部分被封裝成一個(gè)Java對(duì)象庫(kù),自身不能獨(dú)立運(yùn)行,但可靜態(tài)地或通過JVM的庫(kù)加載機(jī)制動(dòng)態(tài)地連接到其他基于Java的應(yīng)用程序中,并可通過本組件的接口庫(kù)在界面、事件、文檔和坐標(biāo)變換等功能上與該應(yīng)用程序結(jié)合成為一個(gè)整體。
3.一種基于Java的Visio文檔跨平臺(tái)網(wǎng)絡(luò)瀏覽器軟件,利用權(quán)利要求2的組件所構(gòu)建,其特征在于是一個(gè)能夠在各種軟、硬件平臺(tái)上獨(dú)立運(yùn)行的軟件,具有對(duì)本地或網(wǎng)絡(luò)上遠(yuǎn)程的Visio XML文檔進(jìn)行瀏覽、轉(zhuǎn)換、打印以及平移、放大、縮小、旋轉(zhuǎn)、拉伸、平鋪、打印等相關(guān)功能。
全文摘要
本發(fā)明涉及利用跨平臺(tái)的網(wǎng)絡(luò)編程語(yǔ)言和跨平臺(tái)的統(tǒng)一文檔標(biāo)記語(yǔ)言來構(gòu)建跨平臺(tái)的Visio文檔網(wǎng)絡(luò)瀏覽器的方法,實(shí)現(xiàn)該方法的對(duì)象庫(kù)組件和瀏覽器軟件,以解決目前Visio文檔對(duì)Windows操作系統(tǒng)的依賴性問題。其中Visio文檔瀏覽器組件是本發(fā)明的核心,包括Visio XML文檔解析器、Visio XML文檔轉(zhuǎn)換器、Visio圖元對(duì)象庫(kù)、畫板功能庫(kù)以及接口庫(kù),能夠全面實(shí)現(xiàn)Visio XML文檔跨平臺(tái)網(wǎng)絡(luò)瀏覽器的有關(guān)功能,可以靜態(tài)或動(dòng)態(tài)的方式連接到其他基于Java的應(yīng)用程序中,并可通過組件的接口庫(kù)與該應(yīng)用程序在邏輯和功能上結(jié)合成為一個(gè)整體。
文檔編號(hào)G06F17/30GK101078989SQ200710142828
公開日2007年11月28日 申請(qǐng)日期2007年7月31日 優(yōu)先權(quán)日2007年7月31日
發(fā)明者阮俊杰 申請(qǐng)人:阮俊杰