def _oooConvertByFormat(self, printout, content_type, extra_context, REQUEST, format, batch_mode): """ Convert the ODF document into the given format. Keyword arguments: printout -- ODF document content_type -- the content type of the printout extra_context -- extra_context including a format REQUEST -- Request object format -- requested output format batch_mode -- Disable headers overriding """ if REQUEST is not None and not format: format = REQUEST.get("format", None) filename = self.getProperty("filename") # Call refresh through cloudooo # XXX This is a temporary implementation: # Calling a webservice must be done through a WebServiceMethod # and a WebServiceConnection from Products.ERP5OOo.Document.OOoDocument import OOoServerProxy, enc, dec server_proxy = OOoServerProxy(self) extension = guess_extension(content_type).strip(".") printout = dec( server_proxy.convertFile( enc(printout), extension, extension, False, True # source_format # destination_format # zip ) ) # refresh # End of temporary implementation if not format: if REQUEST is not None and not batch_mode: REQUEST.RESPONSE.setHeader("Content-Length", len(printout)) REQUEST.RESPONSE.setHeader("Content-Type", "%s" % content_type) REQUEST.RESPONSE.setHeader( "Content-disposition", 'inline;filename="%s%s"' % (filename, guess_extension(content_type) or "") ) return printout from Products.ERP5Type.Document import newTempOOoDocument tmp_ooo = newTempOOoDocument(self, self.title_or_id()) tmp_ooo.edit( data=printout, base_data=printout, filename=self.title_or_id(), content_type=content_type, base_content_type=content_type, ) mime, data = tmp_ooo.convert(format) if REQUEST is not None and not batch_mode: REQUEST.RESPONSE.setHeader("Content-Length", len(data)) REQUEST.RESPONSE.setHeader("Content-type", mime) REQUEST.RESPONSE.setHeader("Content-disposition", 'attachment;filename="%s.%s"' % (filename, format)) return str(data)
def convertDocumentByConversionServer(self, data, source_mimetype, destination_mimetype, zip=False, refresh=False, conversion_kw=None, REQUEST=None): if REQUEST is not None: raise Unauthorized proxy = OOoServerProxy(self) return b64decode( proxy.convertFile(b64encode(data), source_mimetype, destination_mimetype, zip, refresh, conversion_kw or {}))
def convertDocumentByConversionServer( self, data, source_mimetype, destination_mimetype, zip=False, refresh=False, conversion_kw=None, REQUEST=None ): if REQUEST is not None: raise Unauthorized proxy = OOoServerProxy(self) return b64decode( proxy.convertFile( b64encode(data), source_mimetype, destination_mimetype, zip, refresh, conversion_kw or {} ) )