MS Visio文檔跨平台網路瀏覽器--Universal VisioViewer的實現方法

來源:互聯網
上載者:User

1 MS Visio軟體的XML文檔結構

Visio是一款功能強大、擁有大量客戶群的辦公室向量繪圖軟體系統,以其獨具特色的模 具、模板、拖曳式繪圖方式及智能化繪圖等技術而風靡全球。為了促進Visio文檔資訊與其他 應用系統的充分融合與共用,特別是適應於基於Internet的應用模式,微軟公司於2004年宣 布以免費授權的方式提供Visio文檔的Reference Schema for Visio——“DataDiagramML” 。

Visio XML文檔以“VisioDocument”作為根標記,其子節點則主要以“表(Sheet)”、 “節(Section)”、“行(Row)”及“單元(Cell)”的階層描述文檔的圖形資訊、 文本資訊、資料資訊、控制資訊、結構資訊及部分元資訊。文檔高層節點的子孫關係如圖1所 示,“StyleSheets”、“Masters”和“Pages”是Visio XML文檔的三個重要一級子節點標 記,分別定義了文檔所基於的樣式、主圖形和頁面構成,而隸屬於“Pages”階層中的 “Shape”節點則是文檔的基本、核心和主要的組成要素,並可作為“Masters”階層下 相應主圖形的執行個體而被初始化,同時可繼承“StyleSheets”中所定義線型、填充和文本等 樣式屬性。此外,“Shape”節點的“類型(Type)”屬性設有“Group”和“Shape”選項, 這樣便可利用前者對形狀進一步分組,使得“Shape”節點自身又可組成複雜的樹型結構,而 其中的底層節點又可繼承高層節點的部分屬性。此外,“Masters”層次下的“Shape”節點 除作為“Pages”層次下“Shape”對象的“基類”外,還是使用者自訂的線型、線段端點和 填充形狀的定義與描述地區。

與微軟其他的Office軟體相類似,Visio規定了其內部的變數類型、度量單位及運算函數,但 Visio利用公式的範圍更加寬泛,特別是單元(Cell)級節點中屬性的定義幾乎全部規定為公 式。而這種公式的應用又具備其鮮明的特點:其一,儘管隨著使用者利用Visio軟體所進行的文 檔編輯操作其取值可能隨時變化,但每個公式在任何時點的相應取值均被計算出來並在XML文 檔中被靜態地記錄,這樣就使得第三方的程式不必涉及過多的函數及公式的解析與運算;其 二是對於長度單位來說,無論使用者指定何種度量單位,Visio均將其轉化為內部的單位(英寸 )並記錄在XML文檔之中,這樣亦使得第三方程式不必涉及過多的單位換算。

2  Shape對象的構造2.1 Shape的座標體系及變換

Visio以ShapeSheet表格對Shape對象的幾 何結構及文字屬性進行描述,其中含有兩個重要的節,即“Shape Transform. Section”和“Text Transform. Section”,在Visio的XML文檔中,這兩個 節的標記分別為“XForm”和“TextXForm”,其中分別描述了Shape對 象的幾何形狀和文本的位置與範圍。以“XForm”節點為例,通過其子節點 “PinX”、“PinY”、“Width”、“Height” 、“LocPinX”、“LocPinY”、“Angle”、 “FlipX”、“FlipY”的節點值即可完全確定形狀的幾何位置、大小 、旋轉角度及水平或垂直翻轉狀態,其原理如圖2所示。

利用Java AWT中的AffineTransform類可以容易地實現這種變換。假設Shape所基於的“ 上下文座標變換”——對Visio文檔顯示進行縮放、平移及翻轉等變換或其 所屬組對象的變換——為Tx,則為正確顯示Shape所進行的座標變換應該為:

Tx.clone().translate(PinX, PinY). rotate(Angle). Translate(-LocPinX,- LocPinY).scale(-FlipX,-FlipY)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.