I would say using the Python-UNO bridge . Does this work for you?
import uno ctx = uno.getComponentContext() service_manager = ctx.getServiceManager() desktop = service_manager.createInstanceWithContext("com.sun.star.frame.Desktop", ctx) document = desktop.loadComponentFromURL("file:///file.doc", "_blank", 0, ()) replace_desc = document.createReplaceDescriptor() replace_desc.setSearchString("text_to_replace") find_iter = document.findFirst(replace_desc) while find_iter: find_iter.String = "replacement_text" find_iter = document.findNext(find_iter.End, replace_desc)
For more information on search, see XSearchable docs . Also, make sure OpenOffice is started with the following command line: swriter "-accept=socket,host=localhost,port=2002;urp;"
.
source share