Intanto ho chiesto sulla lista [email protected] e pare che non sia possibile scrivere lo stile d'un botto come volevo fare io, ma Stephan Wunderlich suggeriva di creare prima un nuovo stile nel nuovo doc e poi "loop over all properties in your original style and set them accordingly in your new style".

Non ho seguito...

Detta così (ma il mio inglese è scarso) sembra una operazione gravosa tanto quella di sistemare 117 argomenti...
Ma la parola "loop" mi ha detto qualcosa...

Avevo trovato anch'io questa soluzione, ma non avevo capito come usarla fino ad ora!

Parallelamente ho cercato sul mio pc dove ho gli archivi (credo non completi) della lista [email protected] dal 2000 ad oggi ed ho trovato alcune discissioni inerenti... Lo strano è che quelle discussioni non le ho trovate sugli archivi in internet... quindi posto direttamente quel codice così come l'ho trovato.

Ecco, io mi fermo al 2005....

Comunque funziona, ma è strutturato per fare copia di uno stile di pagina all'interno dello stesso documento, ma cè qualcosa di poco chiaro.

Sto brigando per farlo funzionare tra due documenti diversi e nel caso volessi divertirti anche tu...

E' sufficiente cambiare un paio di righe, posto sotto quello che funziona (ho sottolineato i cambiamenti).
Ora ti manca solo di impostare il nuovo stile! :-)

Ciao!
Emanuele.

'***************************
sub Scrivi_stile_pag
   oDocument = ThisComponent
   oSheet = oDocument.getSheets.getByIndex(0)
   ' get the pagestyle collection ....
   oPstyle = oDocument.StyleFamilies.getByName("PageStyles")
   ' create a new pagestyle ...
   oCpyStyle = oDocument.createInstance("com.sun.star.style.PageStyle")
   ' insert it into the collection ...
   oPstyle.insertByName("temp", oCpyStyle)
   ' get the sheets pagestyle ...
'    oPstyle = oPstyle.getByName(oSheet.PageStyle)
'^^ Tolta la riga sopra
   ' get the properties collection ...
   aProperties = oAktPage.PropertySetInfo.Properties
'                        ^^^^^^^^
   ' copy the properties ...
   For i = LBound(aProperties) to UBound(aProperties)
       sX = aProperties(i).Name
If oAktPage.getPropertyState(sX) = com.sun.star.beans.PropertyState.DIRECT_VALUE Then
'          ^^^^^^^^
           vTmp = oAktPage.getPropertyValue(sX)
'                        ^^^^^^^^
           oCpyStyle.setPropertyValue(sX, vTmp)
       EndIf
   Next i
end sub
'**************************

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a