Hello!
I wrote a macro using python (pyUno) and have to start it from the
terminal. In the documentation, I found the following way to do that:
libreoffice /home/me/desktop/myEmptyFile.odt
"vnd.sun.star.script:HelloWorld.py$helloWorldPython?language=Python&location=user"
Where the file HelloWorld.py is in the following dir:
/home/me/.libreoffice/3/user/Scripts/python/
And the file contains the following function as you can see in the code
below: helloWorldPython()
But it doesn't work, I get a ScriptingFrameworkException in from the
file pythonscript.py in line 896 which should load the python scripts...
I think, this works for openoffice, but not for libreoffice, at least in
my case. I finally found a workaround by calling a basic macro from the
terminal, which itself calls my Python function. But this isn't good
style, there must be another solution!? Can anybody help me with the
correct shell command? Or confirm the error when trying to execute the
python code directly from the terminal. My system: Ubuntu 11.04, 64bit.
Thanks a lot in advance!
Aaron
Content of HelloWorld.py
import uno
def helloWorldPython( ):
context = uno.getComponentContext()
smgr = context.ServiceManager
desktop =
smgr.createInstanceWithContext("com.sun.star.frame.Desktop", context)
document = desktop.loadComponentFromURL("private:factory/swriter",
"_blank", 0, ())
cursor = document.Text.createTextCursor()
document.Text.insertString(cursor, "Hello world.", 0)
################################################################
Content of the basic macro which finally executed the python function
succesfull from the terminal with the following command (soffice
"macro:///Standard.Module3.CallPython"):
Sub CallPython
oFactory =
createUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
oProvider = oFactory.createScriptProvider("")
oScript =
oProvider.getScript("vnd.sun.star.script:HelloWorld.py$helloWorldPython?language=Python&location=user")
oScript.Invoke(Array(), Array(), Array())
end sub
--
Unsubscribe instructions: E-mail to users+h...@libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/www/users/
All messages sent to this list will be publicly archived and cannot be deleted