Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő
Fejezet 5

Munka a StarOffice-dokumentumokkal

A StarOffice API úgy van felépítve, hogy a lehető legtöbb részét univerzálisan fel lehessen használni különböző feladatoknál. Ez magában foglalja dokumentumok létrehozásához, megnyitásához, mentéséhez, konvertálásához és nyomtatásához, valamint a sablonok kezeléséhez használt felületeket és szolgáltatásokat. Mivel ezek a funkciók minden dokumentumban előfordulnak, ezért ez a fejezet először velük foglalkozik.

A StarDesktop

Amikor dokumentumokkal dolgozunk, leggyakrabban két szolgáltatást használunk:

  • Az egyik a com.sun.star.frame.Desktop szolgáltatás, amely hasonlít a StarOffice főszolgáltatására. Ez a szolgáltatás biztosítja a StarOffice keretobjektumának funkcióit, amely alá tartozik az összes ablakosztály. A dokumentumok is ezzel az objektummal hozhatók létre, nyithatók meg és importálhatók.

  • A másik szolgáltatás az egyes dokumentumobjektumok alapfunkcionalitását biztosító com.sun.star.document.OfficeDocument. Ez a szolgáltatás biztosítja a dokumentumok mentését, exportálását és nyomtatását végző metódusokat.

A com.sun.star.frame.Desktop szolgáltatás automatikusan megnyílik a StarOffice indításakor. Ehhez a StarOffice létrehoz egy objektumot, amely a StarDesktop globális néven érhető el.

A StarDesktop legfontosabb felülete a com.sun.star.frame.XComponentLoader. Ez tulajdonképpen a loadComponentFromURL metódust fedi le, amely felelős a dokumentumok létrehozásáért, importálásáért és megnyitásáért.

A StarDesktop objektum neve a StarOffice 5 programból származik, ahol minden dokumentumablak egyetlen közös, StarDesktop nevű alkalmazásba volt beágyazva. A StarOffice jelenlegi verziójában a látható StarDesktop objektum már nem használt. Ennek ellenére a StarDesktop név megmaradt a StarOffice keretobjektuma számára, mert ez egyértelműen jelzi, hogy ez a teljes alkalmazás keretobjektuma.

A StarDesktop objektum a StarOffice 5 Application objektumának szerepét tölti be, amely a régebbi verzióban a gyökérobjektum volt. De a régi Application objektummal ellentétben ez elsődlegesen az új dokumentumok megnyitásáért felelős. A régi Application objektumban megtalálható, a StarOffice megjelenítését végző függvények (például a FullScreen, FunctionBarVisible, Height, Width, Top, Visible) már nem használtak.


Megjegyzés - Míg Wordben az aktív dokumentumot az Application.ActiveDocument objektumon keresztül lehet elérni, és Excelben az Application.ActiveWorkbook objektummal, addig a StarOffice programban a StarDesktop felelős ezért. A StarOffice 7 programban a dokumentumobjektum a StarDesktop.CurrentComponent tulajdonsággal érhető el.


Alapvető információk a StarOffice-dokumentumokról

A StarOffice-dokumentumokkal végzett munka során hasznos lehet, ha ismerjük a dokumentumok alapvető kezelését a StarOffice programban. Ez magában foglalja a StarOffice-dokumentumok fájlnevei strukturálásának módját, akárcsak a nem mentett fájlok formátumát.

Fájlnevek URL-jelölésben

Mivel a StarOffice egy platformfüggetlen alkalmazás, ezért URL-jelölést használ (amely független az operációs rendszertől), amely a fájlnevekről szóló RFC 1738-as internetszabványban van definiálva. A fájlnevek ebben a rendszerben a

file:///

előtaggal kezdődnek, amelyet a helyi elérési út követ. Ha a fájlnév alkönyvtárakat tartalmaz, akkor ezek törtjellel elválasztva szerepelnek, és nem fordított törtjellel, ahogy azt a Windows használja általában. A következő elérési út a C: meghajtó doc könyvtárának test.sxw fájljára hivatkozik.

file:///C:/doc/test.sxw

A helyi fájlnevek URL-lé történő konvertálásához a StarOffice a ConvertToUrl függvényt biztosítja. Egy URL helyi fájlnévvé történő konvertálásához a StarOffice a ConvertFromUrl függvényt biztosítja.

MsgBox ConvertToUrl("C:\doc\test.sxw") 

      ' a file:///C:/doc/test.sxw elérési utat jeleníti meg

MsgBox ConvertFromUrl("file:///C:/doc/test.sxw")    

      '  a c:\doc\test.sxw elérési utat jeleníti meg (Windows alatt)

Ez a példa konvertálja a helyi fájlnevet URL-lé, és megjeleníti azt egy üzenetablakban. Ezután konvertálja az URL-t helyi fájlnévvé, és azt is megjeleníti.

Az RFC 1738-as internetszabvány, amelyen ez alapul, a 0-9, a-z és A-Z karakterek használatát engedélyezi. Az összes többi karakter vezérlőkódként lesz beszúrva az URL-ekbe. Ehhez át lesznek konvertálva az ISO 8859-1 (ISO-Latin) kódolás szerinti hexadecimális értékükre, és egy százalékjel előzi meg őket. Például a szóköz a fájlnevekben a %20 karakterláncra lesz konvertálva az URL-ekben.

Az XML fájlformátum

A 6.0-s verzió óta a StarOffice XML alapú fájlformátumot használ. Az XML használatának köszönhetően a felhasználó megnyithatja és szerkesztheti a fájlokat más programokban is.

Fájlok tömörítése

Mivel az XML normál szövegfájlokon alapul, az eredmény általában meglehetősen nagy méretű. Éppen ezért a StarOffice tömöríti a fájlokat, és ZIP-fájlként menti őket. A storeAsURL metódus használatával lehetőség van közvetlenül az eredeti XLM-fájlok mentésére. Lásd: A storeAsURL metódus lehetőségei.

Dokumentumok létrehozása, megnyitása és importálása

A dokumentumok megnyitását, importálását és létrehozását a

StarDesktop.loadComponentFromURL(URL, Frame, _

            SearchFlags, FileProperties) metódussal lehet elvégezni.

A loadComponentFromURL első paramétere az adott fájl URL-jét adja meg.

Második paraméterként a loadComponentFromURL a StarOffice által belsőleg létrehozott ablak keretobjektumának a nevét várja. Általában ez az előre definiált _blank név, amelynek hatására a StarOffice egy új ablakot hoz létre. Megadható még a _hidden név is, amely lehetővé teszi, hogy az adott dokumentum betöltődjön, de rejtve maradjon.

Ezekkel a paraméterekkel a felhasználó megnyithat egy StarOffice-dokumentumot, mert az utolsó két paraméterként helyfoglalók (üres értékek) is megadhatók:

Dim Doc As Object

Dim Url As String

Dim Dummy() 



Url = "file:///C:/test.sxw"



Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())

Ez a metódushívás megnyitja a text.sxw fájlt és megjeleníti egy új ablakban.

Tetszőleges számú dokumentum megnyitható így a StarOffice Basic programban, majd szerkeszthető a visszaadott dokumentumobjektum használatával.


Megjegyzés - A StarDesktop.loadComponentFromURL metódus leváltotta a régi StarOffice API Documents.Add és Documents.Open metódusát.


A dokumentumablak tartalmának lecserélése

A _blank és a _hidden érték a Frame paraméterben azt eredményezi, hogy a StarOffice új ablakot hoz létre a loadComponentFromURL minden meghívásakor. Néhányszor hasznos lehet egy meglévő ablak tartalmának lecserélése. Ebben az esetben az ablak keretobjektumának egy nevet kell tartalmaznia. Ez a név nem kezdődhet aláhúzással. Ezenfelül a SearchFlags paramétert úgy kell beállítani, hogy a megfelelő keretobjektum létrejöjjön, ha még nincs létrehozva. A SearchFlags megfelelő állandója a következő:

SearchFlags = com.sun.star.frame.FrameSearchFlag.CREATE + _

         com.sun.star.frame.FrameSearchFlag.ALL

A következő példa bemutatja, hogyan cserélhető le egy megnyitott ablak tartalma a keretparaméter és a SearchFlags használatával:

Dim Doc As Object

Dim Dummy() 

Dim Url As String

Dim SearchFlags As Long



SearchFlags = com.sun.star.frame.FrameSearchFlag.CREATE + _

         com.sun.star.frame.FrameSearchFlag.ALL



Url = "file:///C:/test.sxw"

Doc = StarDesktop.loadComponentFromURL(Url, "SajátKeret", _

      SearchFlags, Dummy)



MsgBox "Nyomja meg az OK gombot a második dokumentum megjelenítéséhez."



Url = "file:///C:/test2.sxw"

Doc = StarDesktop.loadComponentFromURL(Url, "SajátKeret", _

      SearchFlags, Dummy())

Előző Előző     Tartalom     Tárgymutató     Következő Következő