1.5.3. fejezet, PyUNO és OpenOffice.org
Beküldte pzoli - 2011, május 29 - 9:38de
PyUNO dokumentációk alapján egy kezdő script, ami a c:\temp\temp.html dokumentumot hozza létre.
#soffice.exe "-accept=pipe,name=pypipe;urp;StarOffice.ServiceManager" import uno from os import getcwd from os.path import splitext from unohelper import Base, systemPathToFileUrl, absolutize from com.sun.star.beans import PropertyValue from com.sun.star.io import IOException, XOutputStream from com.sun.star.uno import Exception as UnoException class OutputStream( Base, XOutputStream ): def __init__( self ): self.closed = 0 def closeOutput(self): self.closed = 1 def writeBytes( self, seq ): sys.stdout.write( seq.value ) def flush( self ): pass localContext = uno.getComponentContext() resolver = localContext.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", localContext ) ctx = resolver.resolve( "uno:pipe,name=pypipe;urp;StarOffice.ComponentContext" ) smgr = ctx.ServiceManager desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx) #model = desktop.getCurrentComponent() #text = model.Text doc = desktop.loadComponentFromURL( "private:factory/swriter","_blank", 0, () ) text = doc.Text cursor = text.createTextCursor() text.insertString( cursor, "Szia barátom!", 0 ) outProps = ( PropertyValue( "FilterName" , 0, "HTML (StarWriter)" , 0 ), PropertyValue( "Overwrite" , 0, True , 0 ), PropertyValue( "OutputStream", 0, OutputStream(), 0) ) path="c:\\temp\\temp.html" cwd = systemPathToFileUrl( getcwd() ) fileUrl = absolutize( cwd, systemPathToFileUrl(path) ) doc.storeToURL(fileUrl,outProps) ctx.ServiceManager
Futtatás az OpenOffice.org telepítési könyvtárában található program\python.bat parancsal történjen, mivel Python 2.3.4-hez készült a PyUNO az OpenOffice.org 2.4-es verzióban. Figyelj arra is, hogy a soffice.exe "-accept=pipe,name=pypipe;urp;StarOffice.ServiceManager" parancs kiadása előtt minden OpenOffice programból lépj ki. A OpenOffice gyorsindítót is állítsd le.
- A hozzászóláshoz be kell jelentkezni