[Risolto] Writer inserire testo formattato

Creare una macro - Scrivere uno script - Usare le API
Rispondi
BlueEyes73
Messaggi: 2
Iscritto il: sabato 26 luglio 2014, 15:20

[Risolto] Writer inserire testo formattato

Messaggio da BlueEyes73 »

Ciao a tutti,
sono nuovo, fino ad ora sono sempre riuscito a cavarmela trovando guide a destra e sinistra ma avrei bisogno di un aiutino :D . La domanda sarà banale ma non sono riuscito a venirne a capo.
Vorrei inserire in automatico del testo preso da un database formattandolo (neretto, sottolineato ecc...)
Sono già riuscito a fare questo usando i dispatcher, ma volevo rifare tutto per bene senza usarli.
Mi sapete dire come posso fare per inserire questo testo in neretto? Non sono riuscito a trovare un semplice esempio che facesse questa cosa...

Sub Prova
Dim Testo As Object

Testo = ThisComponent.Text

???? Metto qualcosa qui per attivare il neretto????

Testo.insertString(Testo.getStart(), "Testo di prova" & CHR$(13), False)

???? Metto qualcosa qui per disattivare il neretto????

End Sub
Ultima modifica di charlie il giovedì 14 agosto 2014, 13:48, modificato 2 volte in totale.
Motivazione: Inserito segno di spunta verde
OpenOffice 4.1 / Windows 8.1
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Writer inserire testo formattato

Messaggio da patel »

prova questa

Codice: Seleziona tutto

Sub Prova
Dim oDoc As Object, oText As Object, oVCurs As Object, oTCurs As Object
oDoc = ThisComponent
oText = oDoc.Text
oVCurs = oDoc.CurrentController.getViewCursor()
oTCurs = oText.createTextCursorByRange(oVCurs.getStart())
call WriteString("prova testo", oText, oTcurs, true, false, false)
call Endl (oText,oTcurs)
End Sub

Sub WriteString( data as String, txt as Object, cursor as Object, bold as Boolean, underline as Boolean, italics as Boolean) ', ret as Boolean )
   SetStyle( cursor, bold, underline, italics )
   txt.insertString( cursor, data, FALSE )
End Sub

Sub Endl( txt as Object, cursor as Object )
   txt.insertControlCharacter( cursor, com.sun.star.text.ControlCharacter.LINE_BREAK, FALSE )
End Sub

Sub Endp( txt as Object, cursor as Object )
   txt.insertControlCharacter( cursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, FALSE )
End Sub

Sub SetStyle( cursor as Object, bold as Boolean, underline as Boolean, italics as Boolean )
   if bold then
      cursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
   else
      cursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL
   end if
   if underline then
      cursor.CharUnderline = com.sun.star.awt.FontUnderline.SINGLE
   else
      cursor.CharUnderline = com.sun.star.awt.FontUnderline.NONE
   end if   
   if italics then
      cursor.CharPosture = com.sun.star.awt.FontSlant.ITALIC
   else
      cursor.CharPosture = com.sun.star.awt.FontSlant.NONE
   end if      
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
BlueEyes73
Messaggi: 2
Iscritto il: sabato 26 luglio 2014, 15:20

Re: Writer inserire testo formattato

Messaggio da BlueEyes73 »

Che dire... funziona alla perfezione, pensavo si potesse fare in maniera meno macchinosa (non ci sarei mai arrivato :()

Grazie mille! A buon rendere, anche se sarà difficile, viste le tue competenze ;)
OpenOffice 4.1 / Windows 8.1
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] Writer inserire testo formattato

Messaggio da patel »

E' più facile di quanto tu creda, basta cercare con Google in inglese
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Rispondi