dimarts, 23 de novembre del 2010

Com executar una macro de l'OpenOffice des d'una shell

Aquest és un truc que obre un ampli ventall de possibilitats.  Per a més info. mireu aquest fil del fòrum de l'OpenOffice.org.

Per a invocar una macro de l'openOffice.org, n'hi ha prou amb indicar el mètode de macro que vull executar amb una URL del tipus macro.

Per exemple, per obrir el wrapper del tesseract OCR del post anterior.

soffice macro:///tesseract.Module1.ObrirDialeg

Si la macro estigués en un document, caldria indicar el document

soffice document  macro:///mètode


Es poden passar paràmetres a la macro:

Suposem el mètode Concatena al Module1 de la llibreria Standard,

Sub Concatena(sVar1 as String, sVar2 as String)
    MsgBox sVar1 & " + " sVar2
end sub

Aleshores el podria invocar com:


soffice "macro:///Standard.Module1.Concatena(\"hola\",\"adeu\")"


El resultat és l'esperat:



Per evitar trobar-se amb un munt d'instàncies de l'OpenOffice.org obertes i consumint recursos, és una bona precaució que les macros que soguin invocades des de la línia d'ordres tanquin explícitament el document des del que és invocat, si cal,  i també la instància de l'OpenOffice.org. Això es pot aconseguir amb aquest codi:

thisComponent.close(true)   ' tanca el document
Stardesktop.terminate()    ' tanca l'OOo

Cap comentari:

Publica un comentari a l'entrada