??? Blogjava中很少有關于OpenOffice.org的討論,本人做過這方面的項目現將項目中的經歷記錄下,方便自己和大家。
??? 上一個項目是關于OpenOffice.org二次開發的,現在那個項目已經結束了,但是對于OpenOffice.org總是有一種難以割舍,難以忘懷的心情。這可能主要是因為OpenOffice.org是SUN公司開源的,并且它最接近于個人的現實生活吧:),況且它各方面性能不差是我們在政府大力推廣正版化之后的良好替代方案,它能夠為我們極大的減少軟件支出費用,也能夠降低大家使用盜版軟件所帶來的心理上的負擔。本人強烈建議軟件開發人員使用正版軟件,如果不能的話,請使用免費軟件替代。試想自己都不能夠尊重別人的知識產權,今后我們有何理由向別人提及它、要求它呢!這不就是自己砸自己的腳嘛。
??? 今后我會抽空慢慢總結在做OpenOffice.org二次開發項目之中遇到的問題與經驗教訓。
??? OpenOffice.org的二次開發,主要是向其添加UNO組件的形式進行的,具體而言就是向其添加UNO組件的壓縮包,這個壓縮包在OOo調用的時候又分為兩種:
??? 1、OOo直接調用這部分插件代碼。
??? 2、OOo通過其內部的腳本調用插件代碼。
由于所屬層次與調用機制不同,造成了腳本調用功能完善,但第一次執行效率較另一個低下;而直接調用速度快,但在調用OOo內部的類的時候層次有所限制。具體性能測試后腳本調用并不會滯后多少。綜其而言,通過腳本調用插件是我們的首要選擇目標。下面我來向大家簡要介紹兩種UNO包的結構及其異同:
??? 一:直接調用的包:
??? ?? ?? zip--|
??? ?? ?? ???? |-jarName.jar
??? ?? ?? ???? |
??? ?? ?? ???? |-addons.xcu
??? ?? ?? ???? |-jarName.xcu
??? 二:腳本調用的包:
??? ?? ?? zip--|
??? ?? ?? ???? |-jarName文件夾--|--jarName.jar
??? ?? ?? ?? ? |?? ?? ?? ?? ??? |
??? ?? ?? ?? ? |?? ?? ?? ?? ??? |--parcel-descriptor.xml
??? ?? ?? ???? |
??? ?? ?? ???? |-addons.xcu
??? ?? ?? ???? |
??? ?? ?? ???? |-META-INF--|--manifest.xml
??? 相同點:
??? ?? 1、由于OOo現在是SUN公司主導的開源項目,所以遵循SUN公司的打包慣例UNO包使用的也是zip打包壓縮算法,這樣就極大減少了瑣碎小文件對于系統時間空間上地占用。
??? ?? 2、它們都有設置OOo菜單的xcu文件,它是xml格式的配置文件。
??? ?? 3、對具體的class文件都要打jar包。
??? 不同點:
??? ?? 1、對于jar包,直接調用的需要在jar包中的MATE-INF文件夾中MANIFEST.MF文件中指出主類,而腳本調用的則不需要。
??? ?? 2、對于zip包,直接調用比腳本調用多了一個xcu配置文件,這是因為它是說明OOo調用那個類開始的;而對于腳本調用,它在自己的zip包中還多加了一層文件夾包括了jar包和一個配置文件,這個名為parcel-descriptor.xml的配置文件詳細說明了OOo需要調用的類,以及用于解析腳本所用的dtd文件。
??? ?? 3、直接調用的處理是從使用OOo之中的XComponentContext對象開始的,而腳本調用則是從OO中腳本調用機制傳入的XScriptContext對象啟動。XScriptContext對象所屬的層次比XComponentContext高,它能夠獲取當前編輯的文檔對象以及XComponentContext。
??? ?? 今天就先寫到這里,下次介紹OOo之中配置文件的結構與其機制。
本文依據《創作共用約定》之“署名-禁止派生-非商業用途”方式發布,即你可以免費拷貝、分發、呈現和表演當前作品,但是必須基于以下條款:
對于任何二次使用或分發,你必須讓其他人明確當前作品的授權條款。
在得到作者的明確允許下,這里的某些條款可以放棄。