存儲(chǔ)文檔
??? 成功加載辦公軟件組件之后,返回的接口用于操縱該組件。諸如com.sun.star.text.XTextDocument、com.sun.star.sheet.XSpreadsheetDocument 或com.sun.star.drawing.XDrawPagesSupplier 之類的文檔特定接口是通過 queryInterface() 進(jìn)行檢索的。

??? 如果辦公軟件組件支持適用于實(shí)現(xiàn) com.sun.star.document.OfficeDocument 服務(wù)的每個(gè)組件的com.sun.star.frame.XStorable 接口,則可以存儲(chǔ)該組件:

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 提供的文檔存儲(chǔ)方法有 store()、storeAsURL() 和 storeToURL()。后兩個(gè)方法使用中間描述符進(jìn)行調(diào)用。

store() 將覆蓋現(xiàn)有文件。對(duì)使用 private:factory/... URL 從頭開始創(chuàng)建的文檔調(diào)用這個(gè)方法將導(dǎo)致異常。其他兩個(gè)方法 storeAsURL() 和 storeToURL() 都保留原文件不動(dòng),不同之處在于存儲(chǔ)文檔之后。

storeToURL() 方法將當(dāng)前文檔保存到指定位置,而不改變文檔的內(nèi)部狀態(tài)。storeAsURL 方法將文檔的 Modified 屬性(可通過文檔的 com.sun.star.util.XModifiable 接口訪問)設(shè)置為假,并使用調(diào)用中傳送的參數(shù)更新文檔的內(nèi)部中間描述符。這樣就改變了文檔的 URL。

??? 在保存已編輯文檔之前需要對(duì)一個(gè) PropertyValue 數(shù)組結(jié)構(gòu)體進(jìn)行內(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ā)生事件時(shí)執(zhí)行此命令。 對(duì)于事件類型 StarBasic 而言,URL 使用 macro:協(xié)議。對(duì)于事件類型Script 而言,可以使用其他協(xié)議,特別是 script:協(xié)議。macro 協(xié)議有兩種形式:macro:///<Library>.<Module>.<Method(args)>macro://./<Library>.<Module>.<Method(args)>第一種形式指向全局基本存儲(chǔ)器中的一個(gè)方法,第二種形式指向嵌套在當(dāng)前文檔中的一個(gè)方法。Library>.<Module>.<Method(args)> 表示程序庫、模塊和方法的名稱。目前,args 只能使用字符串參數(shù)(用逗號(hào)分隔)。如果不存在參數(shù),必須使用空括號(hào),因?yàn)槔ㄌ?hào)是方法的組成部分。下面是一個(gè) URL 示例:macro:///MyLib.MyModule.MyMethod(foo,bar)

Library 字符串型,已不再使用。適用于 EventType "StarBasic" 事件類型。可以為其賦予"application" 值或?yàn)槿只敬鎯?chǔ)器賦予空字符串值,為嵌套代碼的文檔賦予 "document" 值。

MacroName 字符串型,已不再使用。適用于 EventType "StarBasic" 事件類型。將宏
地址描述為 <Library>.<MyModule>.<MyMethod>。

還有些屬性,等我整理好了再補(bǔ)充上來:)


本文依據(jù)《創(chuàng)作共用約定》之“署名-禁止派生-非商業(yè)用途”方式發(fā)布,即你可以免費(fèi)拷貝、分發(fā)、呈現(xiàn)和表演當(dāng)前作品,但是必須基于以下條款:

  • 署名:你必須明確標(biāo)明作者的名字。

  • 非商業(yè)用途:你不可將當(dāng)前作品用于商業(yè)目的。

  • 禁止派生:你不可更改、轉(zhuǎn)變或者基于此作品重新構(gòu)造為新作品。

對(duì)于任何二次使用或分發(fā),你必須讓其他人明確當(dāng)前作品的授權(quán)條款。

在得到作者的明確允許下,這里的某些條款可以放棄。