存儲文檔
??? 成功加載辦公軟件組件之后,返回的接口用于操縱該組件。諸如com.sun.star.text.XTextDocument、com.sun.star.sheet.XSpreadsheetDocument 或com.sun.star.drawing.XDrawPagesSupplier 之類的文檔特定接口是通過 queryInterface() 進行檢索的。
??? 如果辦公軟件組件支持適用于實現(xiàn) com.sun.star.document.OfficeDocument 服務(wù)的每個組件的com.sun.star.frame.XStorable 接口,則可以存儲該組件:
void store ( )
void storeAsURL ( [in] string sURL, [in] sequence< com::sun::star::beans::PropertyValue > lArguments )
void storeToURL ( [in] string sURL, [in] sequence< com::sun::star::beans::PropertyValue > lArguments )
boolean hasLocation ()
string getLocation ()
boolean isReadonly ()
??? XStorable 提供的文檔存儲方法有 store()、storeAsURL() 和 storeToURL()。后兩個方法使用中間描述符進行調(diào)用。
store() 將覆蓋現(xiàn)有文件。對使用 private:factory/... URL 從頭開始創(chuàng)建的文檔調(diào)用這個方法將導(dǎo)致異常。其他兩個方法 storeAsURL() 和 storeToURL() 都保留原文件不動,不同之處在于存儲文檔之后。
storeToURL() 方法將當前文檔保存到指定位置,而不改變文檔的內(nèi)部狀態(tài)。storeAsURL 方法將文檔的 Modified 屬性(可通過文檔的 com.sun.star.util.XModifiable 接口訪問)設(shè)置為假,并使用調(diào)用中傳送的參數(shù)更新文檔的內(nèi)部中間描述符。這樣就改變了文檔的 URL。
??? 在保存已編輯文檔之前需要對一個 PropertyValue 數(shù)組結(jié)構(gòu)體進行內(nèi)容設(shè)置,
PropertyValue[] prop = new PropertyValue[1];
??? ??? prop[0] = new PropertyValue();
??? ??? prop[0].Name = "Overwrite";
??? ??? prop[0].Value = Boolean.TRUE;
事件綁定描述中的 PropertyValue 結(jié)構(gòu)如下:
EventType 字符串型。可能的值為 "StarBasic" 或 "Script"。事件類型 "Script" 用URL 表示位置。事件類型 "StarBasic" 是出于兼容目的而提供的,除 URL外,它還用 Library 和 MacroName 屬性來描述宏的地址。
Script? 字符串型。適用于 Script 和 StarBasic事件類型。用于描述被綁定宏/腳本例程的位置。URL 屬性需要使用命令 URL。StarBasic 將在發(fā)生事件時執(zhí)行此命令。 對于事件類型 StarBasic 而言,URL 使用 macro:協(xié)議。對于事件類型Script 而言,可以使用其他協(xié)議,特別是 script:協(xié)議。macro 協(xié)議有兩種形式:macro:///<Library>.<Module>.<Method(args)>macro://./<Library>.<Module>.<Method(args)>第一種形式指向全局基本存儲器中的一個方法,第二種形式指向嵌套在當前文檔中的一個方法。Library>.<Module>.<Method(args)> 表示程序庫、模塊和方法的名稱。目前,args 只能使用字符串參數(shù)(用逗號分隔)。如果不存在參數(shù),必須使用空括號,因為括號是方法的組成部分。下面是一個 URL 示例:macro:///MyLib.MyModule.MyMethod(foo,bar)
Library 字符串型,已不再使用。適用于 EventType "StarBasic" 事件類型。可以為其賦予"application" 值或為全局基本存儲器賦予空字符串值,為嵌套代碼的文檔賦予 "document" 值。
MacroName 字符串型,已不再使用。適用于 EventType "StarBasic" 事件類型。將宏
地址描述為 <Library>.<MyModule>.<MyMethod>。
還有些屬性,等我整理好了再補充上來:)
本文依據(jù)《創(chuàng)作共用約定》之“署名-禁止派生-非商業(yè)用途”方式發(fā)布,即你可以免費拷貝、分發(fā)、呈現(xiàn)和表演當前作品,但是必須基于以下條款:
對于任何二次使用或分發(fā),你必須讓其他人明確當前作品的授權(quán)條款。
在得到作者的明確允許下,這里的某些條款可以放棄。