Difference between revisions of "HU/Documentation/BASIC Guide/More Than Text"
Timarandras (Talk | contribs) (New page: {{HU/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=HU/Documentation/BASIC Guide/Editing Text Documents |NextPage=HU/Documentation/BASIC Guide/Spreadsheet...) |
Timarandras (Talk | contribs) |
||
Line 49: | Line 49: | ||
* egy logikai értéket, amely megadja, hogy a kurzor által kijelölt részt lecserélje-e a <tt>Content</tt> objektum (<tt>True</tt> (igaz) érték), vagy az elé legyen beszúrva (<tt>False</tt> (hamis) érték). | * egy logikai értéket, amely megadja, hogy a kurzor által kijelölt részt lecserélje-e a <tt>Content</tt> objektum (<tt>True</tt> (igaz) érték), vagy az elé legyen beszúrva (<tt>False</tt> (hamis) érték). | ||
− | {{Documentation/Note|Amikor táblázatokat hozunk létre szöveges dokumentumokban vagy szúrunk be azokba, a VBA-ban rendelkezésre álló objektumokhoz hasonló objektumokat használunk az {{OOo}} Basicben: Az {{OOo}} Basic dokumentumobjektuma és <tt>TextCursor</tt> objektuma vagy a VBA-beli megfelelője, a < | + | {{Documentation/Note|Amikor táblázatokat hozunk létre szöveges dokumentumokban vagy szúrunk be azokba, a VBA-ban rendelkezésre álló objektumokhoz hasonló objektumokat használunk az {{OOo}} Basicben: Az {{OOo}} Basic dokumentumobjektuma és <tt>TextCursor</tt> objektuma vagy a VBA-beli megfelelője, a <tt>Range</tt> objektum. Míg a VBA-ban a <tt>Document.Tables.Add</tt> metódus hajtja végre a táblázat létrehozását és beállítását, a létrehozást az {{OOo}} Basicben az előző példán bemutatottaknak megfelelően a <tt>createInstance</tt> metódus végzi, az inicializálást és a dokumentumba történő beszúrást pedig az <tt>insertTextContent</tt> metódus.}} |
A szöveges dokumentumba beszúrt táblázatok egy egyszerű ciklussal felismerhetők. Ebből a célból használjuk a szövegesdokumentum-objektum <tt>getTextTables()</tt> metódusát: | A szöveges dokumentumba beszúrt táblázatok egy egyszerű ciklussal felismerhetők. Ebből a célból használjuk a szövegesdokumentum-objektum <tt>getTextTables()</tt> metódusát: |
Revision as of 14:28, 15 May 2009
- A szöveges dokumentumok felépítése
- Szöveges dokumentumok szerkesztése
- Több, mint szöveg
Eddig a fejezet csak a szövegbekezdésekkel és azok részeivel foglalkozott. De a szöveges objektumok ezenfelül más objektumokat is tartalmazhatnak. Ezek közé tartoznak a táblázatok, szövegmezők és jegyzékek. Ezek az objektumok a szöveg bármelyik pontján beszúrhatók.
A közös funkcióknak köszönhetően az Apache OpenOffice programban ezen objektumok mindegyike támogatja a com.sun.star.text.TextContent nevű közös alapszolgáltatást. Ez a következő tulajdonságokat biztosítja:
- AnchorType (enumeráció)
- a TextContent objektum rögzítési típusa (a com.sun.star.text.TextContentAnchorType enumerációnak megfelelő alapértelmezett értékek).
- AnchorTypes (enumerációsorozat)
- a speciális TextContent objektumot tartalmazó összes AnchorTypes objektum enumerációja.
- TextWrap (enumeráció)
- a szöveg körbefolyatását határozza meg a TextContent objektum körül (a com.sun.star.text.WrapTextMode enumerációnak megfelelő alapértelmezett értékek).
A TextContent objektumoknak szinték közös néhány metódusa – lényegében az objektumok létrehozása, beszúrása és törlése.
- Az TextContent objektum a dokumentumobjektum createInstance metódusával hozható létre.
- Egy objektum a szövegobjektum insertTextContent metódusával szúrható be.
- A TextContent objektumok a removeTextContent metódussal törölhetők.
A következő részekben számos példát találunk ezen metódusok használatára.
Táblázatok
A következő példa egy táblázatot hoz létre az előzőekben ismertetett createInstance metódus használatával.
Dim Doc As Object Dim Table As Object Dim Cursor As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Table = Doc.createInstance("com.sun.star.text.TextTable") Table.initialize(5, 4) Doc.Text.insertTextContent(Cursor, Table, False)
Létrehozás után az initialize metódus beállítja a táblázat sorainak és oszlopainak számát, majd a insertTextContent metódus beszúrja a táblázatot a szövegbe.
Ahogy a példában is látható, az insertTextContent metódus nem csak a beszúrni kívánt Content objektumot várja paraméterként, hanem két másik paramétert is:
- egy Cursor objektumot, amely meghatározza a beszúrás pozícióját;
- egy logikai értéket, amely megadja, hogy a kurzor által kijelölt részt lecserélje-e a Content objektum (True (igaz) érték), vagy az elé legyen beszúrva (False (hamis) érték).
A szöveges dokumentumba beszúrt táblázatok egy egyszerű ciklussal felismerhetők. Ebből a célból használjuk a szövegesdokumentum-objektum getTextTables() metódusát:
Dim Doc As Object Dim TextTables As Object Dim Table As Object Dim I As Integer Doc = StarDesktop.CurrentComponent TextTables = Doc.getTextTables() For I = 0 to TextTables.count - 1 Table = TextTables(I) ' Táblázat szerkesztése Next I
Táblázatok szerkesztése
Egy táblázat önálló sorokból áll. Ezek pedig cellákból. Szigorúan véve nincsenek táblaoszlopok az Apache OpenOffice programban. Az oszlopokat az hozza létre, hogy a sorok egymás alá vannak rendezve. Ennek ellenére a táblázatokkal végzett munka megkönnyítésére az Apache OpenOffice biztosít metódusokat, amelyek oszlopokat használnak. Ezek akkor hasznosak, ha egy cella sincs összevonva egy másikkal a táblázatban.
Először tekintsük át magának a táblázatnak a tulajdonságait. Ezek a com.sun.star.text.TextTable szolgáltatásban vannak definiálva. Az alábbiakban láthatók a táblázatobjektum legfontosabb tulajdonságai:
- BackColor (hosszú egész szám)
- a táblázat háttérszíne.
- BottomMargin (hosszú egész szám)
- az alsó margó századmilliméterben.
- LeftMargin (hosszú egész szám)
- a bal margó századmilliméterben.
- RightMargin (hosszú egész szám)
- a jobb margó századmilliméterben.
- TopMargin (hosszú egész szám)
- felső margó századmilliméterben.
- RepeatHeadline (logikai érték)
- a táblázat fejlécének megismétlése minden oldalon.
- Width (hosszú egész szám)
- a táblázat abszolút szélessége századmilliméterben.
Sorok
A táblázat egy sorokat tartalmazó listából áll. A következő példa bemutatja, hogyan olvashatók be és formázhatók a táblázat sorai.
Dim Doc As Object Dim Table As Object Dim Cursor As Object Dim Rows As Object Dim Row As Object Dim I As Integer Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Table = Doc.createInstance("com.sun.star.text.TextTable") Table.initialize(5, 4) Doc.Text.insertTextContent(Cursor, Table, False) Rows = Table.getRows For I = 0 To Rows.getCount() - 1 Row = Rows.getByIndex(I) Row.BackColor = &HFF00FF Next
A példaprogram először a Table.getRows metódussal létrehoz egy listát, amely tartalmazza az összes sort. A com.sun.star.table.XtableRows felülethez tartozó getCount és a getByIndex metódus segítségével a lista tovább feldolgozható. A getByIndex metódus visszaad egy sorobjektumot, amely támogatja a com.sun.star.text.TextTableRow szolgáltatást.
Az alábbiakban láthatók a com.sun.star.table.XtableRows felület főbb metódusai:
- getByIndex(egész szám)
- visszaadja a megadott indexhez tartozó sorobjektumot.
- getCount()
- visszaadja a sorobjektumok számát.
- insertByIndex(Index, Darabszám)
- az Index pozícióban beszúr Darabszám sort a táblázatba.
- removeByIndex(Index, Darabszám)
- az Index pozíciótól töröl Darabszám sort a táblázatból.
Míg a getByIndex és a getCount metódus elérhető minden táblázatban, addig az insertByIndex és a removeByIndex metódus csak az összevont cellákat nem tartalmazó táblázatokban használható.
A com.sun.star.text.TextTableRow szolgáltatás a következő tulajdonságokat biztosítja:
- BackColor (hosszú egész szám)
- a sor háttérszíne.
- Height (hosszú egész szám)
- a sor magassága századmilliméterben.
- IsAutoHeight (logikai érték)
- a táblázat magassága dinamikusan igazodik a tartalomhoz.
- VertOrient (állandó)
- a szövegkeret függőleges tájolása – a szöveg táblázaton belüli függőleges tájolásának részletei (a com.sun.star.text.VertOrientation objektumnak megfelelő értékek).
Oszlopok
Az oszlopokat ugyanúgy lehet elérni, mint a sorokat; a getColumns metódussal visszakapott Column objektumon végrehajtott getByIndex, getCount, insertByIndex és removeByIndex metódussal. Viszont ezek a metódusok csak összevont cellákat nem tartalmazó táblázatokon használhatók. A cellák nem formázhatók oszlopok szerint az Apache OpenOffice Basicben. Ha így akarunk tenni, az egyes cellákat kell külön formázni.
Cellák
Az Apache OpenOffice-dokumentum minden cellája egyedi névvel rendelkezik. Ha az Apache OpenOffice kurzora egy cellában áll, a cella neve megjelenik az állapotsorban. Általában a bal felső cella neve A1, és a jobb alsóé Xn, ahol az X az utolsó oszlop betűi, az n pedig az utolsó sor száma. A cellaobjektumok a táblaobjektum getCellByName() metódusán keresztül érhetők el. A következő példa bemutat egy ciklust, amely végiglépdel egy táblázat minden celláján, és beírja a sor- és oszlopszámokat a megfelelő cellákba.
Dim Doc As Object Dim Table As Object Dim Cursor As Object Dim Rows As Object Dim RowIndex As Integer Dim Cols As Object Dim ColIndex As Integer Dim CellName As String Dim Cell As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Table = Doc.createInstance("com.sun.star.text.TextTable") Table.initialize(5, 4) Doc.Text.insertTextContent(Cursor, Table, False) Rows = Table.getRows Cols = Table.getColumns For RowIndex = 1 To Rows.getCount() For ColIndex = 1 To Cols.getCount() CellName = Chr(Asc("A") - 1 + ColIndex) & RowIndex Cell = Table.getCellByName(CellName) Cell.String = "sor: " & CStr(RowIndex) + ", oszlop: " & CStr(ColIndex) Next Next
A táblacella hasonlít a normál szövegre. Támogatja a createTextCursor felületet a TextCursor objektum létrehozásához.
CellCursor = Cell.createTextCursor()
Így a karakterek és bekezdések formázási lehetőségei automatikusan rendelkezésre állnak.
A következő példa megkeresi egy szöveges dokumentum táblázataiban a számot tartalmazó cellákat, és azok bekezdéstulajdonságát jobbra igazítottra formázza.
Dim Doc As Object Dim TextTables As Object Dim Table As Object Dim CellNames Dim Cell As Object Dim CellCursor As Object Dim I As Integer Dim J As Integer Doc = StarDesktop.CurrentComponent TextTables = Doc.getTextTables() For I = 0 to TextTables.count - 1 Table = TextTables(I) CellNames = Table.getCellNames() For J = 0 to UBound(CellNames) Cell = Table.getCellByName(CellNames(J)) If IsNumeric(Cell.String) Then CellCursor = Cell.createTextCursor() CellCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.RIGHT End If Next Next
A példaprogram létrehoz egy TextTables listát, amely tartalmazza egy szöveges dokumentum összes táblázatát, amelyeket egy ciklus gyűjt ki. Az Apache OpenOffice ezután létrehozza az összes táblázat cellaneveit tartalmazó listát. Ezután ezeket végignézi egy ciklussal. Ha egy cella numerikus értéket tartalmaz, akkor a program ennek megfelelően formázza. Ehhez először létrehoz egy TextCursor objektumot, amely a táblázatcella tartalmára hivatkozik, majd beállítja a táblázatcella bekezdéstulajdonságait.
Szövegkeretek
A szövegkeretek, akárcsak a táblázatok és az ábrák, TextContent objektumok. Normál szöveget tartalmazhatnak, de bárhová elhelyezhetők az oldalon, és nem részei a folyamatos szövegnek.
Mint minden TextContent objektumnál, a szövegkereteknél is meg van különböztetve a tényleges létrehozás és a dokumentumba való beszúrás.
Dim Doc As Object Dim TextTables As Object Dim Cursor As Object Dim Frame As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Frame = Doc.createInstance("com.sun.star.text.TextFrame") Doc.Text.insertTextContent(Cursor, Frame, False)
A program létrehozza a szövegkeretet a dokumentumobjektum createInstance metódusával. Az így létrehozott szövegkeret beszúrható a dokumentumba a Text objektum insertTextContent metódusával. Ilyenkor a megfelelő com.sun.star.text.TextFrame-szolgáltatás nevét kell megadni.
A szövegkeret beszúrási pozícióját a Cursor objektum határozza meg, amely szintén végrehajtásra kerül beszúráskor.
A szövegkeret-objektumok számos tulajdonságot biztosítanak, amelyekkel a keret pozíciója és viselkedése befolyásolható. A tulajdonságok legtöbbje a com.sun.star.text.BaseFrameProperties szolgáltatásban van definiálva, amelyet minden TextFrame szolgáltatás támogat. A főbb tulajdonságok a következők:
- BackColor (hosszú egész szám)
- a szövegkeret háttérszíne.
- BottomMargin (hosszú egész szám)
- az alsó margó századmilliméterben.
- LeftMargin (hosszú egész szám)
- a bal margó századmilliméterben.
- RightMargin (hosszú egész szám)
- a jobb margó századmilliméterben.
- TopMargin (hosszú egész szám)
- felső margó századmilliméterben.
- Height (hosszú egész szám)
- a szövegkeret magassága századmilliméterben.
- Width (hosszú egész szám)
- a szövegkeret szélessége századmilliméterben.
- HoriOrient (állandó)
- a szövegkeret vízszintes tájolása (a com.sun.star.text.HoriOrientation tulajdonságnak megfelelően).
- VertOrient (állandó)
- a szövegkeret függőleges tájolása (a com.sun.star.text.VertOrientation tulajdonságnak megfelelően).
A következő példa létrehoz egy szövegkeretet az előzőleg ismertetett tulajdonságok használatával:
Dim Doc As Object Dim TextTables As Object Dim Cursor As Object Dim Frame As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Cursor.gotoNextWord(False) Frame = Doc.createInstance("com.sun.star.text.TextFrame") Frame.Width = 3000 Frame.Height = 1000 Frame.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER Frame.TopMargin = 0 Frame.BottomMargin = 0 Frame.LeftMargin = 0 Frame.RightMargin = 0 Frame.BorderDistance = 0 Frame.HoriOrient = com.sun.star.text.HoriOrientation.NONE Frame.VertOrient = com.sun.star.text.VertOrientation.LINE_TOP Doc.Text.insertTextContent(Cursor, Frame, False)
Ez a példa létrehoz egy TextCursor objektumot a szövegkeret beszúrási pontjaként. Ez a szöveg első és második szava közé kerül. A szövegkeret a program a Doc.createInstance metódussal hozza létre. Ezután a szövegkeret-objektumok tulajdonságait a megfelelő értékekre állítja.
Itt kell felhívni a figyelmet az AnchorType tulajdonság (a TextContent szolgáltatásból) és a VertOrient tulajdonság (a BaseFrameProperties szolgáltatásból) tulajdonság közötti interakcióra. Az AnchorType tulajdonság értéke AS_CHARACTER lesz. Ezért a szövegkeret közvetlenül a folyamatos szövegbe kerül, és karakterként viselkedik. Például átvihető a következő sorba egy sortöréssel. A VertOrient tulajdonság LINE_TOP értéke biztosítja, hogy a szövegkeret felső széle ugyanolyan magasan legyen, mint a karakter felső széle.
Ha az inicializálás befejeződött, a keret végül bekerül a szöveges dokumentumba a insertTextContent metódus meghívásával.
A szövegkeret tartalmát a már többször említett TextCursor objektummal lehet elérni, amely a szövegkereteknél is rendelkezésre áll.
Dim Doc As Object Dim TextTables As Object Dim Cursor As Object Dim Frame As Object Dim FrameCursor As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Frame = Doc.createInstance("com.sun.star.text.TextFrame") Frame.Width = 3000 Frame.Height = 1000 Doc.Text.insertTextContent(Cursor, Frame, False) FrameCursor = Frame.createTextCursor() FrameCursor.charWeight = com.sun.star.awt.FontWeight.BOLD FrameCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.CENTER FrameCursor.String = "Ez egy teszt!"
A példaprogram létrehoz egy szövegkeretet, beszúrja az aktuális dokumentumba, és megnyitja a szövegkeret TextCursor objektumát. Ezzel a kurzorobjektummal félkövérre állítja a betűtípust, és beállítja a bekezdés igazítását középre. Ezután a szövegkerethez az „Ez egy teszt!” karakterláncot rendeli.
Szövegmezők
A szövegmezők TextContent objektumok, mert további funkcionalitást biztosítanak a sima szövegen kívül. A szövegmezők ugyanazokkal a metódusokkal szúrhatók be egy szöveges dokumentumba, mint a TextContent objektumok:
Dim Doc As Object Dim DateTimeField As Object Dim Cursor As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() DateTimeField = Doc.createInstance("com.sun.star.text.TextField.DateTime") DateTimeField.IsFixed = False DateTimeField.IsDate = True Doc.Text.insertTextContent(Cursor, DateTimeField, False)
A példaprogram beszúr egy szövegmezőt az aktuális dátummal az aktuális szöveges dokumentum elejére. Az IsDate tulajdonság True (igaz) értéke miatt csak a dátum jelenik meg, az idő nem. Az IsFixed tulajdonság False értéke biztosítja, hogy a dátum mindig frissítve legyen a dokumentum megnyitásakor.
Régebben a szövegmezőket az Apache OpenOffice programban a régi Selection objektum számos metódusával lehetett elérni, (például InsertField, DeleteUserField és SetCurField).
Az Apache OpenOffice 2.x verziókban a mezőket objektumorientált megközelítéssel lehet kezelni. Szövegmező létrehozásához először létre kell hozni egy kívánt típusú szövegmezőt, majd inicializálni azt a megfelelő tulajdonságokkal. Ezután a szövegmezőt az insertTextContent metódussal kell a szövegbe beszúrni. Az erre vonatkozó forráskód az előző példában látható. A legfontosabb mezőtípusok és azok tulajdonságai a következő részekben vannak ismertetve.
A szövegmezők beszúrásán felül, a mezők dokumentumban való keresése is fontos feladat. A következő példa bemutatja, hogyan lehet egy ciklussal végiglépdelni egy dokumentum szövegmezőin, és ellenőrizni azok típusát.
Dim Doc As Object Dim TextFieldEnum As Object Dim TextField As Object Dim I As Integer Doc = StarDesktop.CurrentComponent TextFieldEnum = Doc.getTextFields.createEnumeration While TextFieldEnum.hasMoreElements() TextField = TextFieldEnum.nextElement() If TextField.supportsService("com.sun.star.text.textfield.DateTime") Then MsgBox "Dátum/idő" ElseIf TextField.supportsService("com.sun.star.text.textfield.Annotation") Then MsgBox "Jegyzet" Else MsgBox "ismeretlen" End If Wend
A meglévő szövegmezők beolvasásának kezdőpontja a dokumentumobjektum TextFields listája. Ez a példa létrehoz egy Enumeration objektumot a lista alapján, amellyel le lehet kérdezni az összes szövegmezőt egy ciklusban. A talált szövegmezők által támogatott szolgáltatásokat ellenőrzi a program a supportsService metódussal. Ha a mező egy dátum-/időmező vagy egy jegyzet, akkor az adott mezőtípus megjelenik egy ablakban. Ha viszont másmilyen típusú a mező, akkor az „ismeretlen” üzenet jelenik meg.
Az alábbiakban láthatjuk a legfontosabb mezők és azok tulajdonságainak listáját. A szövegmezők teljes listája a com.sun.star.text.textfield modulban lévő API-hivatkozásban található. (Egy szövegmező szolgáltatásnevének listázásakor a kis- és nagybetűk meg vannak különböztetve az Apache OpenOffice Basicben, ahogy az az előző példában látható.)
Oldalak, szavak és karakterek száma
A
- com.sun.star.text.textfield.PageCount
- com.sun.star.text.textfield.WordCount
- com.sun.star.text.textfield.CharacterCount
szövegmezők az oldalak, szavak vagy karakterek számát adják vissza. A következő tulajdonságokat támogatják:
- NumberingType (állandó)
- számformátum (a com.sun.star.style.NumberingType állandóinak megfelelően).
Aktuális oldal
Az aktuális oldal száma a com.sun.star.text.textfield.PageNumber szövegmező használatával szúrható be a dokumentumba. A következő tulajdonságok adhatók meg:
- NumberingType (állandó)
- számformátum (a com.sun.star.style.NumberingType állandóinak megfelelően).
- Offset (rövid egész szám)
- az oldalak számához adott eltolás (negatív szám is megadható).
A következő példa bemutatja hogyan jeleníthető meg az oldalszám a dokumentum élőlábában.
Dim Doc As Object Dim DateTimeField As Object Dim PageStyles As Object Dim StdPage As Object Dim FooterCursor As Object Dim PageNumber As Object Doc = StarDesktop.CurrentComponent PageNumber = Doc.createInstance("com.sun.star.text.textfield.PageNumber") PageNumber.NumberingType = com.sun.star.style.NumberingType.ARABIC PageStyles = Doc.StyleFamilies.getByName("PageStyles") StdPage = PageStyles("Default") StdPage.FooterIsOn = True FooterCursor = StdPage.FooterTextLeft.Text.createTextCursor() StdPage.FooterTextLeft.Text.insertTextContent(FooterCursor, PageNumber, False)
A példaprogram először létrehoz egy mezőt, amely támogatja a com.sun.star.text.textfield.PageNumber szolgáltatást. Mivel az élőfej és az élőláb az Apache OpenOffice oldalsablonjainak része, ezt először a PageStyles listával lehet létrehozni.
Az élőláb megjelenítéséhez a FooterIsOn tulajdonságot True (igaz) értékre kell állítani. Ezután a program beszúrja a szövegmezőt a dokumentumba a bal oldali élőláb megfelelő szövegobjektumával.
Jegyzetek
A jegyzetmezők (com.sun.star.text.textfield.Annotation) kis sárga szimbólumként jelennek meg a szövegben. Ha kattintunk erre a szimbólumra, megnyílik egy szövegmező, amelybe megjegyzés írható az adott szövegrészről. A jegyzetmező a következő tulajdonságokkal rendelkezik.
- Author (karakterlánc)
- a szerző neve.
- Content (karakterlánc)
- a megjegyzés szövege.
- Date (dátum)
- a jegyzet írásának dátuma.
Dátum / Idő
A dátum-/időmező (com.sun.star.text.textfield.DateTime) az aktuális dátumot vagy időt jeleníti meg. A következő tulajdonságokat támogatja:
- IsFixed (logikai)
- ha értéke True (igaz), a beszúrás időadatai nem változnak, ha viszont False (hamis), akkor ezek frissítve lesznek a dokumentum minden megnyitásakor.
- IsDate (logikai)
- ha értéke True (igaz), akkor a mező az aktuális dátumot jeleníti meg, egyébként pedig az aktuális időt.
- DateTimeValue (struktúra)
- a mező aktuális értéke (com.sun.star.util.DateTime structure).
- NumberFormat (állandó)
- az idő vagy dátum megjelenítésének formátuma.
Fejezetcím/-szám
Az aktuális fejezet neve elérhető a com.sun.star.text.textfield.Chapter típusú szövegmezővel. A formátum két tulajdonsággal adható meg
- ChapterFormat (állandó)
- meghatározza, hogy a fejezet neve vagy száma jelenjen-e meg (a com.sun.star.text.ChapterFormat tulajdonságnak megfelelően)
- Level (egész szám)
- azt a fejezetszintet határozza meg, amelynek nevét és/vagy számát meg kell jeleníteni. A 0 érték a legfelső elérhető szintet jelzi.
Könyvjelzők
A könyvjelzők (com.sun.star.text.Bookmark szolgáltatás) TextContent objektumok. A könyvjelzők a már előzőleg ismertetett módon hozhatók létre és szúrhatók be:
Dim Doc As Object Dim Bookmark As Object Dim Cursor As Object Doc = StarDesktop.CurrentComponent Cursor = Doc.Text.createTextCursor() Bookmark = Doc.createInstance("com.sun.star.text.Bookmark") Bookmark.Name = "Saját könyvjelzők" Doc.Text.insertTextContent(Cursor, Bookmark, True)
A példaprogram létrehoz egy Cursor objektumot, amely a könyvjelző beszúrási pontját jelöli, majd létrehozza magát a könyvjelzőobjektumot (Bookmark). Ezután a könyvjelzőhöz rendel egy nevet, és beszúrja a dokumentumba az insertTextContent metódussal a kurzorpozícióban.
A szöveg könyvjelzőit a Bookmarks lista segítségével lehet elérni. A könyvjelzőket a nevük vagy számuk alapján lehet elérni.
A következő példa bemutatja, hogyan kereshető meg egy könyvjelző a szövegen belül, és hogyan szúrható be szöveg a helyére.
Dim Doc As Object Dim Bookmark As Object Dim Cursor As Object Doc = StarDesktop.CurrentComponent Bookmark = Doc.Bookmarks.getByName("Saját könyvjelzők") Cursor = Doc.Text.createTextCursorByRange(Bookmark.Anchor) Cursor.String = "Itt van a könyvjelző."
Ebben a példában a getByName metódussal keresi meg a program a neve szerint a könyvjelzőt. Ezután a createTextCursorByRange metódus létrehoz egy Cursor objektumot, amelyet a könyvjelző pozíciójába szúr be. Ezután a kurzorobjektum beszúrja a kívánt szöveget ezen a helyen.
Content on this page is licensed under the Public Documentation License (PDL). |