def open_url(context, url): """ open InputStream from a URL. :param url: a URL to open an InputStream. :returns: an instance of InputStream """ # see http://wiki.openoffice.org # /wiki/Documentation/DevGuide/UCB/Using_the_UCB_API from hwp5.plat._uno.services import css css = css.bind(context) ucb = css.ucb.UniversalContentBroker("Local", "Office") content_id = ucb.createContentIdentifier(url) content = ucb.queryContent(content_id) import unohelper from com.sun.star.io import XActiveDataSink class DataSink(unohelper.Base, XActiveDataSink): def setInputStream(self, stream): self.stream = stream def getInputStream(self): return self.stream datasink = DataSink() from com.sun.star.ucb import Command, OpenCommandArgument2 openargs = OpenCommandArgument2() openargs.Mode = 2 # OpenMode.DOCUMENT openargs.Priority = 32768 openargs.Sink = datasink command = Command() command.Name = "open" command.Handle = -1 command.Argument = openargs content.execute(command, 0, None) return datasink.stream
def open_url(context, url): ''' open InputStream from a URL. :param url: a URL to open an InputStream. :returns: an instance of InputStream ''' # see http://wiki.openoffice.org # /wiki/Documentation/DevGuide/UCB/Using_the_UCB_API from hwp5.plat._uno.services import css css = css.bind(context) ucb = css.ucb.UniversalContentBroker('Local', 'Office') content_id = ucb.createContentIdentifier(url) content = ucb.queryContent(content_id) import unohelper from com.sun.star.io import XActiveDataSink class DataSink(unohelper.Base, XActiveDataSink): def setInputStream(self, stream): self.stream = stream def getInputStream(self): return self.stream datasink = DataSink() from com.sun.star.ucb import Command, OpenCommandArgument2 openargs = OpenCommandArgument2() openargs.Mode = 2 # OpenMode.DOCUMENT openargs.Priority = 32768 openargs.Sink = datasink command = Command() command.Name = 'open' command.Handle = -1 command.Argument = openargs content.execute(command, 0, None) return datasink.stream
def getModelFromDocUrl(ctx, url): """Get document model from document url.""" doc = None args = ("Local", "Office") ucb = ctx.getServiceManager().createInstanceWithArgumentsAndContext( "com.sun.star.ucb.UniversalContentBroker", args, ctx) identifier = ucb.createContentIdentifier(url) content = ucb.queryContent(identifier) p = Property() p.Name = "DocumentModel" p.Handle = -1 c = Command() c.Handle = -1 c.Name = "getPropertyValues" c.Argument = uno.Any("[]com.sun.star.beans.Property", (p, )) env = CommandEnvironment() try: ret = content.execute(c, 0, env) doc = ret.getObject(1, None) except Exception as e: log.isErrorLevel() and log.error("getModelFromDocUrl: %s" % url) return doc
def getModelFromDocUrl(ctx, url): """Get document model from document url.""" doc = None args = ("Local", "Office") ucb = ctx.getServiceManager().createInstanceWithArgumentsAndContext( "com.sun.star.ucb.UniversalContentBroker", args, ctx) identifier = ucb.createContentIdentifier(url) content = ucb.queryContent(identifier) p = Property() p.Name = "DocumentModel" p.Handle = -1 c = Command() c.Handle = -1 c.Name = "getPropertyValues" c.Argument = uno.Any("[]com.sun.star.beans.Property", (p,)) env = CommandEnvironment() try: ret = content.execute(c, 0, env) doc = ret.getObject(1, None) except Exception as e: log.isErrorLevel() and log.error("getModelFromDocUrl: %s" % url) return doc
def executeCommand(self, xContent, aCommandName, aArgument): aCommand = Command() aCommand.Name = aCommandName aCommand.Handle = -1 # not available aCommand.Argument = aArgument return xContent.execute(aCommand, 0, None)