Sun Microsystems
Termékek
 
Támogatás
 
 

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

Szöveges dokumentumok

A karakterláncok mellett a szöveges dokumentumok formázási információkat is tartalmaznak. Ezek bárhol szerepelhetnek a szövegben. Ezt még tovább bonyolítják a táblázatok. Ezek nem csak egydimenziós karakterláncok lehetnek, hanem kétdimenziós mezők. A legtöbb szövegszerkesztő rendszerben már van lehetőség rajzobjektumok, szövegkeretek és egyéb objektumok szövegen belüli kezelésére. Ezek lehetnek a szövegen kívül is, és elhelyezhetők bárhol az oldalon.

Ez a fejezet bemutatja a szöveges dokumentumok központi felületeit és szolgáltatásait. Az első rész a szöveges dokumentumok felépítésével foglalkozik, és arra koncentrál, hogyan dolgozható fel egy StarOffice-dokumentum egy StarOffice Basic-programban. A fejezet a bekezdésekre, bekezdésrészletekre és azok formázására összpontosít.

A második rész a szöveges dokumentumokkal végzett hatékony munkával foglalkozik. Ebből a célból egy StarOffice számos objektumot bocsát rendelkezésünkre, például a TextCursor objektumot, amely túlmutat az első részben bemutatottakon.

A harmadik rész már nem csak a szövegekkel való munkáról szól. Itt már ismertetésre kerülnek a táblázatok, szövegkeretek, szövegmezők, könyvjelzők, tartalomkönyvtárak és számos egyéb dolog.

Az Fejezet 5, Munka a StarOffice-dokumentumokkal leírja a dokumentumok létrehozását, megnyitását, mentését és nyomtatását, mert a program nem csak szöveges dokumentumokkal használható, hanem számos egyéb típusúval is.

A szöveges dokumentumok felépítése

Egy szöveges dokumentum lényegében négyféle típusú információt tartalmazhat:

  • magát a szöveget;

  • sablonokat a karakterek, bekezdések és oldalak formázásához;

  • nem szöveges elemeket, például táblázatokat, ábrákat és rajzobjektumokat;

  • a szöveges dokumentum globális beállításait.

Ez a szakasz főleg a szöveg- és a hozzá tartozó formázási lehetőségekkel foglalkozik.


Megjegyzés - A StarOffice Writer StarOffice 8 API-jának felépítése különbözik az előző verziójáétól. A régi API-verzió a Selection objektummal végzett munkára összpontosított, amely a végfelhasználói felület felé orientálódott, és így az egérrel vezérelt kijelöléssel végzett munkára fókuszált.

A 8 StarOffice API lecserélte ezeket a kapcsolatokat a felhasználói felület és a programozási felület között. Így a programozó most már egyszerre hozzáfér az alkalmazás összes részéhez, és dolgozhat a dokumentum különböző részeinek objektumaival. A régi Selection objektum már nem érhető el.


Bekezdések és bekezdésrészek

A szöveges dokumentum alapja a bekezdések sorozatából áll. Ezek nincsenek elnevezve vagy indexelve, ezért nincs lehetőség az egyes bekezdések egyenkénti elérésére. Ennek ellenére a bekezdéseken végig lehet lépdelni az Enumeration objektum használatával a Fejezet 4, A StarOffice API bemutatása ismertetett módon. Ez lehetővé teszi a bekezdések szerkesztését.

Az Enumeration objektummal végzett munka során azonban figyelnünk kell egy speciális helyzetre: nem csak a bekezdéseket adja vissza, hanem a táblázatokat is (szigorúan véve a StarOffice Writerben a táblázat is egy speciális bekezdés). Ezért, mielőtt dolgozni kezdenénk a visszaadott objektummal, ellenőriznünk kell, hogy az a com.sun.star.text.Paragraph szolgáltatást támogatja a bekezdések számára, vagy a com.sun.star.text.TextTable szolgáltatást a táblázatok számára.

A következő példa végiglépdel egy szöveges dokumentum tartalmán egy ciklusban, és minden objektumról egy üzenetben kiírja, hogy az táblázat vagy bekezdés.

Dim Doc As Object

Dim Enum As Object

Dim TextElement As Object



' Dokumentumobjektum létrehozása

Doc = StarDesktop.CurrentComponent



' Enumerációobjektum létrehozása

Enum = Doc.Text.createEnumeration



' ciklus végig a szöveges elemeken

While Enum.hasMoreElements

   TextElement = Enum.nextElement



   If TextElement.supportsService("com.sun.star.text.TextTable") Then

      MsgBox "A jelenlegi blokk egy táblázatot tartalmaz."

   End If



   If TextElement.supportsService("com.sun.star.text.Paragraph") Then

      MsgBox "A jelenlegi blokk egy bekezdést tartalmaz."

   End If

Wend

Ez a példa létrehoz egy Doc nevű dokumentumobjektumot, amely az aktuális StarOffice-dokumentumra hivatkozik. A Doc objektum segítségével a program létrehoz egy Enumeration nevű objektumot, amely végiglépdel a szöveg egyes részein (bekezdéseken és táblázatokon), és hozzárendeli az adott elemet a TextElement objektumhoz. A példa a supportsService metódust használja annak megállapítására, hogy a TextElement objektum bekezdés vagy táblázat.

Bekezdések

A com.sun.star.text.Paragraph szolgáltatás hozzáférést biztosít a bekezdés tatalmához. A bekezdés szövege String tulajdonság használatával olvasható be és módosítható:

Dim Doc As Object

Dim Enum As Object

Dim TextElement As Object



Doc = StarDesktop.CurrentComponent

Enum = Doc.Text.createEnumeration



While Enum.hasMoreElements

   TextElement = Enum.nextElement



   If TextElement.supportsService("com.sun.star.text.Paragraph") Then

      TextElement.String = Replace(TextElement.String, "úgynevezett", "ún.") 

      TextElement.String = Replace(TextElement.String, "satöbbi", "stb.") 

      TextElement.String = Replace(TextElement.String, "Tisztelt", "T.") 

   End If

Wend

Ez a példa megnyitja az aktuális szövegdokumentumot, és végiglépdel rajta az Enumeration objektum segítségével. A TextElement.String tulajdonság segítségével hozzáfér a bekezdések szövegéhez, és lecseréli az úgynevezett, satöbbi és Tisztelt szót az ún., stb. és T. rövidítésre. A Replace függvény nem része a StarOffice Basic nyelvnek. Ez csak egy felhasználása a Fejezet 3, A StarOffice Basic futásidejű programkönyvtára Keresés és csere című részében ismertetett függvénynek.


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