Hi hamann.w! On Di, 01 Mär 2011, hamann.w@t-online.de wrote:
kann man irgendwie ein open office auf einem entfernten Rechner dazu bewegen, ein .ods in ein .csv umzuwandeln, ohne das UI remote zu öffnen?
Stichwort headless openoffice: #v+ ~$ cat oo_convert.py #!/usr/bin/python # coding:utf-8 import uno,sys from os.path import abspath from com.sun.star.beans import PropertyValue def convert_file(arg): in_url=uno.systemPathToFileUrl(arg) out_url=uno.systemPathToFileUrl(str(arg[:-3] + "csv")) local = uno.getComponentContext() resolver = local.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", local) context = resolver.resolve( "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext") desktop = context.ServiceManager.createInstanceWithContext( "com.sun.star.frame.Desktop", context) document = desktop.loadComponentFromURL(in_url,"_blank", 0, ()) properties = [] p = PropertyValue() p.Name="Overwrite" p.Value=True properties.append(p) p = PropertyValue() p.Name="FilterName" p.Value='Text - txt - csv (StarCalc)' properties.append(p) properties = tuple(properties) document.storeToURL(out_url, properties) document.dispose() if __name__ == "__main__": try: arg = abspath(sys.argv[1]) except IndexError: print "Usage: %s inputfile" % sys.argv[0] sys.exit else: convert_file(arg) ~$ chmod +x ~$ ls -l file.{ods,csv} ls: cannot access file.csv: No such file or directory -rw-rw-r-- 1 chrisbra chrisbra 8015 Mar 1 19:31 file.ods ~$ openoffice.org -accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" -norestore -nofirstwizard -nologo -headless & ~$ ./oo_convert.py file.ods ~$ cat file.csv "foobar",1 "eins",2 "zwei",3 ~$ #v- Doku ist ähm nicht so dolle. Mit freundlichen Grüßen Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org