Difference between revisions of "NL/Documentation/BASIC Guide/More Than Text"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Bladwijzers)
m
Line 6: Line 6:
 
|textdocs=block
 
|textdocs=block
 
}}
 
}}
{{DISPLAYTITLE: Tekstdocumenten: Meer dan alleen tekst}}
+
{{DISPLAYTITLE: Meer dan alleen tekst}}
 
__NOTOC__  
 
__NOTOC__  
 
Tot zover heeft dit hoofdstuk alleen tekstalinea's en hun gedeelten behandeld. Maar tekstdocumenten kunnen ook andere objecten bevatten. Dit kunnen tabellen, tekeningen, tekstvelden en verwijzingen zijn. Al deze objecten kunnen worden verankerd aan elk punt binnen een tekst.
 
Tot zover heeft dit hoofdstuk alleen tekstalinea's en hun gedeelten behandeld. Maar tekstdocumenten kunnen ook andere objecten bevatten. Dit kunnen tabellen, tekeningen, tekstvelden en verwijzingen zijn. Al deze objecten kunnen worden verankerd aan elk punt binnen een tekst.

Revision as of 14:54, 23 February 2013

Book.png


Tot zover heeft dit hoofdstuk alleen tekstalinea's en hun gedeelten behandeld. Maar tekstdocumenten kunnen ook andere objecten bevatten. Dit kunnen tabellen, tekeningen, tekstvelden en verwijzingen zijn. Al deze objecten kunnen worden verankerd aan elk punt binnen een tekst.

Dankzij deze algemene mogelijkheden ondersteunen al deze objecten in Apache OpenOffice een algemene basisservice, genaamd com.sun.star.text.TextContent. Deze verschaft de volgende eigenschappen:

AnchorType (Enum)
bepaalt het verankeringstype van een object TextContent (standaardwaarden die overeenkomen met de nummering van com.sun.star.text.TextContentAnchorType).
AnchorTypes (reeks van nummering)
nummering van alle AnchorTypes die een speciaal object TextContent ondersteunen.
TextWrap (Enum)
bepaalt de tekstomloop rondom een object TextContent (standaardwaarden die overeenkomen met de nummering van com.sun.star.text.WrapTextMode).

De objecten TextContent delen ook enkele methoden - in het bjzonder die voor het maken, invoegen en verwijderen van objecten.

  • Een nieuw object TextContent wordt gemaakt met behulp van de methode createInstance van het documentobject.
  • Een object wordt ingevoegd met behulp van de methode insertTextContent van het tekstobject.
  • objecten TextContent worden verwijderd met behulp van de methode removeTextContent.

U vindt een aantal voorbeelden die deze methoden gebruiken in de volgende gedeelten.

Tabellen

Het volgende voorbeeld maakt een tabel met behulp van de methode createInstance, zoals eerder beschreven.

Dim Doc As Object
Dim Tabel As Object
Dim Cursor As Object
 
Doc = ThisComponent
Cursor = Doc.Text.createTextCursor()
 
Tabel = Doc.createInstance("com.sun.star.text.TextTable")
Tabel.initialize(5, 4)
 
Doc.Text.insertTextContent(Cursor, Tabel, False)

Indien gemaakt wordt de tabel ingesteld tot het benodigde aantal rijen en kolommen met behulp van een aanroep initialize en dan ingevoegd in het tekstdocument met behulp van insertTextContent.

Zoals kan worden gezien in het voorbeeld, verwacht de methode insertTextContent niet alleen dat het object Content wordt ingevoegd, maar ook twee andere parameters:

  • een object Cursor wat de positie voor invoegen bepaalt
  • een Booleaanse variabele die specificeert of het object Content de huidige selectie van de cursor moet vervangen (waarde True) of moet worden ingevoegd vóór de huidige selectie in de tekst False
Documentation note.png VBA : Bij het maken en invoegen van tabellen in een tekstdocument worden objecten, overeenkomstig die welke beschikbaar zijn in VBA, gebruikt in Apache OpenOffice BASIC: Het documentobject en een object TextCursor in Apache OpenOffice BASIC of het object Range als de VBA-component. Waar de methode Document.Tables.Add de taak op zich neemt van het maken en instellen van de tabel in VBA, wordt dit in Apache OpenOffice BASIC gemaakt, overeenkomstig het vorige voorbeeld, met gebruik van createInstance, geïnitialiseerd en ingevoegd in het document door middel van insertTextContent.


De ingevoegde tabel in een tekstdocument kan worden vastgesteld met behulp van een eenvoudige lus. De methode van getTextTables() van het tekstdocumentobject wordt voor dit doel gebruikt:

Dim Doc As Object
Dim TekstTabellen As Object
Dim Tabel As Object
Dim I As Integer
Doc = ThisComponent
TekstTabellen = Doc.getTextTables()
For I = 0 to TekstTabellen.count - 1
 
   Tabel = TekstTabellen(I)
   ' Tabel bewerken
 
Next I

Template:Documentation/Note

Tabellen bewerken

Een tabel bestaat uit individuele rijen. Op hun beurt bevatten zij de verschillende cellen. Strikt gesproken zijn er geen tabelkolommen in Apache OpenOffice. Deze worden impliciet geproduceerd door de rijen (één onder de ander) naast elkaar te plaatsen. Om de toegang tot tabellen eenvoudiger te maken, verschaft Apache OpenOffice echter enkele methoden die werken met gebruik van kolommen. Deze zijn handig als er geen cellen zijn samengevoegd in de tabel.

Laten we eerst eens de eigenschappen van de tabel zelf nemen. Deze worden gedefinieerd in de service com.sun.star.text.TextTable. Hier is een lijst van de meest belangrijke eigenschappen van het tabel-object:

BackColor (Long)
kleur van de achtergrond van de tabel.
BottomMargin (Long)
ondermarge in 100-en van een millimeter.
LeftMargin (Long)
linkermarge in 100-en van een millimeter.
RightMargin (Long)
rechtermarge in 100-en van een millimeter.
TopMargin (Long)
bovenmarge in 100-en van een millimeter.
RepeatHeadline (Boolean)
tabelkop wordt herhaald op elke pagina.
Width (Long)
absolute breedte van de tabel in 100-en van een millimeter.

Rijen

Een tabel bevat een lijst op opgenomen rijen. Het volgende voorbeeld toont hoe de rijen van een tabel kan worden teruggevonden en opgemaakt.

Dim Doc As Object
Dim Tabel As Object
Dim Cursor As Object
Dim Rijen As Object
Dim Rij As Object
Dim I As Integer
 
Doc = ThisComponent
Cursor = Doc.Text.createTextCursor()
 
Tabel = Doc.createInstance("com.sun.star.text.TextTable")
Tabel.initialize(5, 4)
 
Doc.Text.insertTextContent(Cursor, Tabel, False)
Rijen = Tabel.getRows
For I = 0 To Rijen.getCount() - 1
   Rij = Rijen.getByIndex(I)
   Rij.BackColor = &HFF00FF
Next

Het voorbeeld maakt eerst een lijst die alle rijen bevat met behulp van een aanroep Tabel.getRows. De methoden getCount en getByIndex staan toe dat de lijst verder wordt verwerkt en behoort tot de interface com.sun.star.table.XtableRows. De methode getByIndex geeft een rij-object terug dat de service com.sun.star.text.TextTableRow ondersteunt.

Hier zijn de centrale methoden van de interface com.sun.star.table.XtableRows:

getByIndex(Integer)
geeft een object Rij terug voor de gespecificeerde index.
getCount()
geeft het aantal objecten Rij terug.
insertByIndex(Index, Aantal)
voegt Aantal rijen aan de tabel toe vanaf de positie Index.
removeByIndex(Index, Aantal)
verwijdert Aantal rijen uit de tabel van af de positie Index.

Terwijl de methoden getByIndex en getCount beschikbaar zijn in alle tabellen, kunnen de methoden insertByIndex en removeByIndex alleen worden gebruikt in tabellen die geen samengevoegde cellen bevatten.

De service com.sun.star.text.TextTableRow verschaft de volgende eigenschappen:

BackColor (Long)
kleur van de achtergrond van de rij.
Height (Long)
hoogte van de lijn in 100-en van een millimeter.
IsAutoHeight (Boolean)
tabelhoogte wordt dynamisch aangepast aan de inhoud.
VertOrient (const)
verticale oriëntatie van het tekstkader — details over de verticale oriëntatie van de tekst binnen de tabel (waarden die overeenkomen met com.sun.star.text.VertOrientation)

Kolommen

Kolommen worden benaderd op dezelfde wijze als rijen, met gebruik van de methoden getByIndex, getCount, insertByIndex en removeByIndex op het object Column, dat wordt bereikt via getColumns. Zij kunnen echter alleen worden gebruikt in tabellen die geen samengevoegde cellen bevatten. Cellen kunnen niet per kolom worden opgemaakt in Apache OpenOffice BASIC. De methode voor het opmaken van individuele tabelcellen moet wordne gebruikt om dat te doen.

Cellen

Elke cel van een document in Apache OpenOffice heeft een unieke naam. Als de cursor van Apache OpenOffice in a cel staat, dan kan de naam van die cel worden gezien in de statusbalk. De cel linksboven wordt meestal A1 genoemd en de onderste rij rechts is gewoonlijk genaamd Xn, waar X staat voor de letter(s) van de kolomkop en n voor het getal van de laatste rij. De celobjecten zijn beschikbaar via de methode getCellByName() van het tabelobject.

Het volgende voorbeeld toont een lus die door alle cellen van de tabel gaat en het corresponderende rij- en kolomnummer in de cel invoert.

Dim Doc As Object
Dim Tabel As Object
Dim Cursor As Object
Dim Rijen As Object
Dim RijIndex As Integer
Dim Kolommen As Object
Dim KolIndex As Integer
Dim CelNaam As String
Dim Cel As Object
 
Doc = ThisComponent
Cursor = Doc.Text.createTextCursor()
 
Tabel = Doc.createInstance("com.sun.star.text.TextTable")
Tabel.initialize(5, 4)
 
Doc.Text.insertTextContent(Cursor, Tabel, False)
 
Rijen = Tabel.getRows
Kolommen = Tabel.getColumns
 
For RijIndex = 1 To Rijen.getCount()
   For KolIndex = 1 To Kolommen.getCount()
      CelNaam = Chr(Asc("A") - 1 + KolIndex) & RijIndex
      Cel = Tabel.getCellByName(CelNaam)
      Cel.String = "rij: " & CStr(RijIndex) + ", kolom: " & CStr(KolIndex)
   Next
Next

Een tabelcel is vergelijkbaar met standaard tekst. Het ondersteunt de interface createTextCursor voor het maken van een geassocieerd object TextCursor.

CelCursor = Cel.createTextCursor()

Alle opmaakopties voor individuele tekens en alinea's zijn daardoor automatisch beschikbaar.

Het volgende voorbeeld zoekt door alle tabellen van een tekstdocument en past de opmaak Rechts uitlijnen toe op alle cellen met numerieke waarde, door middel van de corresponderende eigenschap van de alinea.

Dim Doc As Object
Dim TekstTabellen As Object
Dim Tabel As Object
Dim CelNamen
Dim Cel As Object
Dim CelCursor As Object
Dim I As Integer
Dim J As Integer
 
Doc = ThisComponent
TekstTabellen = Doc.getTextTables()
 
For I = 0 to TekstTabellen.count - 1
   Tabel = TekstTabellen(I)
   CelNamen = Tabel.getCellNames()
 
   For J = 0 to UBound(CelNamen)
      Cel = Tabel.getCellByName(CelNamen(J))
      If IsNumeric(Cel.String) Then
         CelCursor = Cel.createTextCursor()
         CelCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.RIGHT
      End If
   Next
Next

Het voorbeeld maakt een lijst TekstTabellen, die alle tabellen bevat, die worden doorlopen in een lus. Apache OpenOffice maakt dan een lijst van de geassocieerde celnamen voor elk van deze tabellen. Zij worden op hun beurt doorlopen in een lus. Als een cel een numerieke waarde bevat, dan verandert het voorbeeld de opmaak overeenkomstig. Om dit te doen, maakt het eerst een object TextCursor dat refereert aan de inhoud van de tabelcel en past dan de alinea-eigenschappen van de tabelcel aan.

Tekstframes

Tekstframes worden verondersteld objecten TextContent te zijn, net als tabellen en afbeeldingen. Zij mogen essentieel bestaan uit standaard tekst, maar kunnen worden geplaatst op elke positie op elke pagina en worden niet opgenomen in de tekststroom.

Net als met alle objecten TextContent wordt ook met tekstframes een onderscheid gemaakt tussen het echte maken en het invoegen in het document.


Dim Doc As Object
Dim TekstTabellen As Object
Dim Cursor As Object
Dim Frame As Object
 
Doc = ThisComponent
Cursor = Doc.Text.createTextCursor()
Frame = Doc.createInstance("com.sun.star.text.TextFrame")
Doc.Text.insertTextContent(Cursor, Frame, False)

Het tekstframe wordt gemaakt met gebruik van de methode createInstance van het document-object. Het op deze manier gemaakte tekstframe kan dan worden ingevoegd in het document met behulp van de methode insertTextContent van het object Text. De naam van de juiste service com.sun.star.text.TextFrame zou moeten worden gespecificeerd, om dit zo te doen.

De positie voor het invoegen van het tekstframe wordt bepaald door een object Cursor, wat ook wordt uitgevoerd bij het invoegen.

Documentation note.png VBA : Tekstframes zijn componenten van Apache OpenOffice voor het positie-frame dat wordt gebruikt in Word. Waar VBA de methode Document.Frames.Add voor dit doel gebruikt, wordt het maken in Apache OpenOffice uitgevoerd met behulp van de voorgaande procedure met de hulp van zowel een TextCursor als de methode createInstance van het document.


Objecten Tekstframe verschaffen een bereik aan eigenschappen, waarmee de positie en het gedrag van het kader kan worden beïnvloed. De meeste van deze eigenschappen worden gedefinieerd in de service com.sun.star.text.BaseFrameProperties, die ook wordt ondersteund door elke service TextFrame. De centrale eigenschappen zijn:

BackColor (Long)
kleur van de achtergrond van het frame.
BottomMargin (Long)
ondermarge in 100-en van een millimeter.
LeftMargin (Long)
linker marge in 100-en van een millimeter.
RightMargin (Long)
rechter marge in 100-en van een millimeter.
TopMargin (Long)
bovenmarge in 100-en van een millimeter.
Height (Long)
hoogte van tekstframe in 100-en van een millimeter.
Width (Long)
breedte van tekstframe in 100-en van een millimeter.
HoriOrient (const)
horizontale oriëntatie van het tekstframe (overeenkomend met com.sun.star.text.HoriOrientation).
VertOrient (const)
verticale oriëntatie van het tekstframe (overeenkomend met com.sun.star.text.VertOrientation).

Het volgende voorbeeld maakt een tekstframe waarbij het de hiervoor beschreven eigenschappen gebruikt:

Dim Doc As Object
Dim TekstTabellen As Object
Dim Cursor As Object
Dim Frame As Object
 
Doc = ThisComponent
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)

Het voorbeeld maakt een TextCursor als de markering voor het invoegen voor het tekstframe. Dit wordt geplaatst tussen het eerste en tweede woord van de tekst. Het tekstframe wordt gemaakt met behulp van Doc.createInstance. De eigenschappen van de objecten Tekstframe worden ingesteld op de gewenste startwaarden.

De interactie tussen de eigenschappen van AnchorType (van de service TextContent ) en VertOrient>/tt> (van de service <tt>BaseFrameProperties) zouden hier moeten opvallen. AnchorType ontvangt de waarde AS_CHARACTER. Het tekstframe wordt daarom direct in de tekststroom ingevoegd en gedraagt zich als een teken. Het kan, bijvoorbeeld, worden verplaatst naar de volgende regel als een regeleinde voorkomt. De waarde LINE_TOP van de eigenschap VertOrient zorgt er voor dat de bovenrand van het tekstframe op dezelfde hoogte staat als de bovenrand van het teken.

Als de initialisatie voltooid is, wordt het tekstframe tenslotte ingevoegd in het tekstdocument met behulp van een aanroep van insertTextContent.

De gebruiker gebruikt de TextCursor, welke al diverse malen is genoemd en ook beschikbaar is voor tekstframes, om de inhoud van een tekstframe te bewerken.

Dim Doc As Object
Dim TekstTabellen As Object
Dim Cursor As Object
Dim Frame As Object
Dim FrameCursor As Object
 
Doc = ThisComponent
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 = "Dit is een kleine Test!"

Het voorbeeld maakt een tekstframe, voegt dit in het huidige document in en opent een TextCursor voor het tekstframe. Deze cursor wordt gebruikt om het lettertype van het frame op type Vet in te stellen en de oriëntatie van de alinea op gecentreerd. Aan het tekstframe wordt tenslotte de tekenreeks “Dit is een kleine test!” toegewezen.

Tekstvelden

Tekstvelden zijn objecten TextContent omdat zij aanvullende logische uitbreiding verschaffen naast pure tekst. Tekstvelden kunnen worden ingevoegd in een tekstdocument met behulp van dezelfde methoden als die welke worden gebruikt voor andere objecten TextContent:

Dim Doc As Object
Dim DatumTijdVeld As Object
Dim Cursor As Object
Doc = ThisComponent
Cursor = Doc.Text.createTextCursor()
 
DatumTijdVeld = Doc.createInstance("com.sun.star.text.textfield.DateTime")
DatumTijdVeld.IsFixed = False
DatumTijdVeld.IsDate = True
Doc.Text.insertTextContent(Cursor, DatumTijdVeld, False)

Het voorbeeld voegt een tekstveld in met de huidige datum aan het begin van het huidige tekstdocument. De waarde True van de eigenschap IsDate resulteert er in dat alleen de datum en niet de tijd wordt weergegeven. De waarde False voor IsFixed zorgt er voor dat de datum automatisch wordt ververst als het document wordt geopend.

Documentation note.png VBA : Terwijl het type van een veld in VBA wordt gespecificeerd door een parameter van de methode Document.Fields.Add, definieert de naam van de service die verantwoordelijk is voor betreffende type dat in Apache OpenOffice BASIC.


Documentation note.png StarOffice 5 : In het verleden werd toegang tot tekstvelden verkregen met behulp van een groot aantal methoden die Apache OpenOffice beschikbaar maakte in het oude object Selection (bijvoorbeeld InsertField, DeleteUserField, SetCurField).


In Apache OpenOffice worden de velden beheerd door middel van een object-georiënteerd concept. Om een tekstveld te maken, moet eerst een tekstveld van het betreffende type worden gemaakt en geïnitialiseerd met behulp van de vereiste eigenschappen. Het tekstveld wordt dan ingevoegd in het document met behulp van de methode insertTextContent. Een corresponderende brontekst kan worden bekeken in het voorgaande voorbeeld. De meest belangrijke veldtypen en hun eigenschappen worden beschreven in de volgende gedeelten.

In aanvulling op het invoegen van tekstvelden, kan ook het zoeken in een document naar die velden een belangrijke taak zijn. Het volgende voorbeeld toont hoe alle velden van een tekstdocument kunnen worden doorlopen in een lus en gecontroleerd op hun relevante type.


Dim Doc As Object
Dim TekstVeldEnum As Object
Dim TekstVeld As Object
Dim I As Integer
 
Doc = ThisComponent
 
TekstVeldEnum = Doc.getTextFields.createEnumeration
 
While TekstVeldEnum.hasMoreElements()
 
   TekstVeld = TekstVeldEnum.nextElement()
 
   If TekstVeld.supportsService("com.sun.star.text.textfield.DateTime") Then
      MsgBox "Datum/tijd"
   ElseIf TekstVeld.supportsService("com.sun.star.text.textfield.Annotation") Then
      MsgBox "Notitie"
   Else
      MsgBox "Onbekend"
   End If
 
Wend

Het startpunt om de aanwezige tekstvelden vast te stellen is de lijst TekstVelden van het documentobject. Het voorbeeld maakt een object Enumeration op basis van die lijst, waarmee alle tekstvelden op hun beurt kunnen worden bevraagd in een lus. De gevonden tekstvelden worden gecontroleerd op de ondersteunde service door middel van de methode supportsService. Als het veld bewijst een veld met datum/tijd te zijn of een Notitie, dan wordt het corresponderende veldtype weergegeven in een berichtenvenster. Als, aan de andere kant, het voorbeeld een ander soort veld tegenkomt, dan geeft het de informatie “Onbekend” weer.

Hieronder vindt u een lijst van de meest belangrijke tekstvelden en hun geassocieerde eigenschappen. Een complete lijst van alle tekstvelden wordt verschaft via de API referentie in de module com.sun.star.text.textfield. (Bij opsommen van de service-naam van een tekstveld, zouden Hoofd- en kleine letters in acht moeten worden genomen in Apache OpenOffice BASIC, zoals in het voorgaande voorbeeld.)


Aantal pagina's, woorden en tekens

De tekstvelden

geven het aantal pagina's, woorden of tekens van een tekst weer. Zij ondersteunen de volgende eigenschap:

NumberingType (const)
opmaak voor nummering (richtlijnen overeenkomend met constanten van com.sun.star.style.NumberingType ).

Huidige pagina

Het nummer van de huidige pagina kan worden ingevoegd in een document met behulp van het tekstveld com.sun.star.text.textfield.PageNumber. De volgende eigenschappen kunnen worden gespecificeerd:

NumberingType (const)
getalopmaak (richtlijnen overeenkomend met constanten uit com.sun.star.style.NumberingType).
Offset (short)
verschuiving toegevoegd aan het aantal pagina's (negatieve specificatie is ook mogelijk).

Het volgende voorbeeld toont hoe het aantal pagina's kan worden ingevoegd in de voettekst van een document.

Dim Doc As Object
Dim DatumTijdVeld As Object
Dim PaginaOpmaakprofielen As Object
Dim StdPagina As Object
Dim VoetCursor As Object
Dim PaginaNummer As Object
 
Doc = ThisComponent
 
PaginaNummer = Doc.createInstance("com.sun.star.text.textfield.PageNumber")
PaginaNummer.NumberingType = com.sun.star.style.NumberingType.ARABIC
 
PaginaOpmaakprofielen = Doc.StyleFamilies.getByName("PageStyles")
 
StdPagina = PaginaOpmaakprofielen("Standaard")
StdPagina.FooterIsOn = True
 
VoetCursor = StdPagina.FooterTextLeft.Text.createTextCursor()
StdPagina.FooterTextLeft.Text.insertTextContent(VoetCursor, PaginaNummer, False)

Het voorbeeld maakt eerst een tekstveld dat de service com.sun.star.text.textfield.PageNumber ondersteunt. Omdat de regels voor de koptekst en voettekst zijn gedefinieerd als deel van het pagina-opmaakprofiel van Apache OpenOffice, wordt dat eerst vastgesteld met behulp van de lijst van alle PageStyles.

Om te zorgen dat de regel voor de voettekst zichtbaar is, wordt de eigenschap FooterIsOn ingesteld op True. Het tekstveld wordt dan ingevoegd in het document met behulp van het geassocieerde tekstobject van de regel voor de voettekst van de linkerpagina.

Notities

Velden Notities (com.sun.star.text.TextField.Annotation) kunnen worden bekeken door middel van een klein geel symbool in de tekst. Klikken op dit symbool opent een tekstveld, waarin een opmerking over het huidige punt in de tekst kan worden opgenomen. Een veld Notitie heeft de volgende eigenschappen.

Author (String)
naam van de auteur.
Content (String)
tekst van de notitie.
Date (Date)
datum waarop de notitie is geschreven.

Datum / Tijd

Een veld datum / tijd (com.sun.star.text.textfield.DateTime) geeft de huidige datum of de huidige tijd weer. Het ondersteunt de volgende eigenschappen:

IsFixed (Boolean)
indien True blijven de details voor de tijd van de invoeging onveranderd, indien False worden deze, elke keer als document wordt geopend, ververst.
IsDate (Boolean)
indien True geeft het veld de huidige datum weer, anders de huidige tijd.
DateTimeValue (struct)
huidige inhoud van het veld (structuur van com.sun.star.util.DateTime)
NumberFormat (const)
opmaak waarin de tijd of datum wordt weergegeven.

Naam hoofdstuk / nummer

De naam van het huidige hoofdstuk is beschikbaar via een tekstveld van het type com.sun.star.text.textfield.Chapter. De vorm kan worden gedefinieerd met behulp van twee eigenschappen.

ChapterFormat (const)
stelt vast of de naam of nummer van het hoofdstuk moet worden weergegeven (overeenkomend met com.sun.star.text.ChapterFormat)
Level (Integer)
stelt het niveau voor het hoofdstuk vast waarvan de naam en/of nummer moet worden weergegeven. De waarde 0 staat voor het hoogst beschikbare niveau.

Bladwijzers

Bladwijzers (Service com.sun.star.text.Bookmark) zijn objecten TextContent. Bladwijzers worden gemaakt en ingevoegd via het reeds eerder beschreven concept:

Dim Doc As Object
Dim Bladwijzer As Object
Dim Cursor As Object
 
Doc = ThisComponent
 
Cursor = Doc.Text.createTextCursor()
 
Bladwijzer = Doc.createInstance("com.sun.star.text.Bookmark")
Bladwijzer.Name = "Mijn bladwijzers"
Doc.Text.insertTextContent(Cursor, Bladwijzer, True)

Het voorbeeld maakt een Cursor die de invoegpositie van de bladwijzer aangeeft en dan het echte object Bladwijzer (Bookmark). De bladwijzer wordt dan een naam toegewezen en wordt op de cursorpositie in het document ingevoegd via insertTextContent.

Toegang tot de Bladwijzers van een tekst wordt verkregen via een lijst genaamd Bookmarks. Toegang tot de bladwijzers kan ofwel worden verkregen via hun nummer dan wel hun naam.

Het volgende voorbeeld toont hoe een bladwijzer kan worden gevonden binnen een tekst en een tekst ingevoegd op zijn positie.

Dim Doc As Object
Dim Bladwijzer As Object
Dim Cursor As Object
 
Doc = ThisComponent
 
Bladwijzer = Doc.Bookmarks.getByName("Mijn bladwijzers")
 
Cursor = Doc.Text.createTextCursorByRange(Bookmark.Anchor)
Cursor.String = "Hier staat de bladwijzer"

In dit voorbeeld wordt de methode getByName gebruikt om de gewenste bladwijzer te vinden door middel van zijn naam. De aanroep createTextCursorByRange maakt dan een Cursor, welke wordt geplaatst op de plaats van verankering van de bladwijzer. De cursor voegt dan de gewenste tekst in op dit punt.


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools