Ejemplo n.º 1
0
def test_openoffice(hostname, port):
  try:
    helper_util.getServiceManager(hostname, port)
    return True
  except Exception, err:
    print err
    return False
Ejemplo n.º 2
0
def test_openoffice(hostname, port):
  try:
    helper_util.getServiceManager(hostname, port)
    return True
  except Exception, err:
    print err
    return False
Ejemplo n.º 3
0
 def _load(self):
     """Create one document with basic properties
 refresh argument tells to uno environment to
 replace dynamic properties of document before conversion
 """
     service_manager = helper_util.getServiceManager(
         self.hostname, self.port, self.uno_path, self.office_binary_path)
     desktop = service_manager.createInstance("com.sun.star.frame.Desktop")
     uno_url = self.systemPathToFileUrl(self.document_url)
     uno_document = desktop.loadComponentFromURL(uno_url, "_blank", 0, ())
     if not uno_document:
         raise AttributeError("This document can not be loaded or is empty")
     if self.refresh:
         # Before converting to expected format, refresh dynamic
         # value inside document.
         dispatcher = service_manager.createInstance(
             "com.sun.star.frame.DispatchHelper")
         for uno_command in (
                 'UpdateFields',
                 'UpdateAll',
                 'UpdateInputFields',
                 'UpdateAllLinks',
                 'UpdateCharts',
         ):
             dispatcher.executeDispatch(
                 uno_document.getCurrentController().getFrame(),
                 '.uno:%s' % uno_command, '', 0, ())
     module_manager = service_manager.createInstance(
         "com.sun.star.frame.ModuleManager")
     self.document_type = module_manager.identify(uno_document)
     self.document_loaded = uno_document
Ejemplo n.º 4
0
 def getMetadata(self):
   """Extract all metadata of the document"""
   metadata = {}
   document_info = self.document_loaded.getDocumentInfo()
   property_list = [prop.Name for prop in document_info.getPropertyValues() \
       if prop.Value]
   for property_name in iter(property_list):
     property = document_info.getPropertyValue(property_name)
     if type(property) == UnicodeType:
         metadata[property_name] = property
     elif type(property) == InstanceType:
       if property.typeName == 'com.sun.star.util.DateTime':
         datetime = "%s/%s/%s %s:%s:%s" % (property.Day, property.Month,
             property.Year, property.Hours, property.Minutes, property.Seconds)
         metadata[property_name] = datetime
   for number in range(document_info.getUserFieldCount()):
     field_value_str = document_info.getUserFieldValue(number)
     if field_value_str:
       fieldname = document_info.getUserFieldName(number)
       metadata[fieldname] = field_value_str
   service_manager = helper_util.getServiceManager(self.hostname, self.port,
                                                   self.uno_path,
                                                   self.office_binary_path)
   type_detection = service_manager.createInstance("com.sun.star.document.TypeDetection")
   uno_file_access = service_manager.createInstance("com.sun.star.ucb.SimpleFileAccess")
   doc = uno_file_access.openFileRead(self.systemPathToFileUrl(self.document_url))
   input_stream = self._createProperty("InputStream", doc)
   open_new_view = self._createProperty("OpenNewView", True)
   filter_name = type_detection.queryTypeByDescriptor((input_stream,
                                                       open_new_view), True)[0]
   doc.closeInput()
   metadata['MIMEType'] = mimemapper["mimetype_by_filter_type"].get(filter_name)
   return metadata
Ejemplo n.º 5
0
    def getMetadata(self):
        """Extract all metadata of the document"""
        metadata = {}
        document_properties = self.document_loaded.getDocumentProperties()
        user_defined_properties = document_properties.getUserDefinedProperties(
        )
        for container in [document_properties, user_defined_properties]:
            for property_name in dir(container):
                if property_name in ('SupportedServiceNames', ):
                    continue
                property_value = getattr(container, property_name, '')
                if property_value:
                    if isinstance(property_value, basestring):
                        metadata[property_name] = property_value
                    elif isinstance(property_value, tuple) and isinstance(
                            property_value[0], basestring):
                        metadata[property_name] = property_value
                    else:
                        try:
                            if property_value.typeName == 'com.sun.star.util.DateTime':
                                # It is a local time and we have no timezone information.
                                datetime = "%02d/%02d/%04d %02d:%02d:%02d" % (
                                    property_value.Day, property_value.Month,
                                    property_value.Year, property_value.Hours,
                                    property_value.Minutes,
                                    property_value.Seconds)
                                metadata[property_name] = datetime
                        except AttributeError:
                            pass

        service_manager = helper_util.getServiceManager(
            self.hostname, self.port, self.uno_path, self.office_binary_path)
        type_detection = service_manager.createInstance(
            "com.sun.star.document.TypeDetection")
        uno_file_access = service_manager.createInstance(
            "com.sun.star.ucb.SimpleFileAccess")
        doc = uno_file_access.openFileRead(
            self.systemPathToFileUrl(self.document_url))
        input_stream = self._createProperty("InputStream", doc)
        open_new_view = self._createProperty("OpenNewView", True)
        filter_name = type_detection.queryTypeByDescriptor(
            (input_stream, open_new_view), True)[0]
        doc.closeInput()
        metadata['MIMEType'] = mimemapper["mimetype_by_filter_type"].get(
            filter_name)
        return metadata
Ejemplo n.º 6
0
  def getMetadata(self):
    """Extract all metadata of the document"""
    metadata = {}
    document_properties = self.document_loaded.getDocumentProperties()
    user_defined_properties = document_properties.getUserDefinedProperties()
    for container in [document_properties, user_defined_properties]:
      for property_name in dir(container):
        if property_name in ('SupportedServiceNames',):
          continue
        property_value = getattr(container, property_name, '')
        if property_value:
          if isinstance(property_value, basestring):
            metadata[property_name] = property_value
          elif isinstance(property_value, tuple) and isinstance(property_value[0], basestring):
            metadata[property_name] = property_value
          else:
            try:
              if property_value.typeName == 'com.sun.star.util.DateTime':
                # It is a local time and we have no timezone information.
                datetime = "%02d/%02d/%04d %02d:%02d:%02d" % (property_value.Day, property_value.Month,
                    property_value.Year, property_value.Hours, property_value.Minutes, property_value.Seconds)
                metadata[property_name] = datetime
            except AttributeError:
              pass

    service_manager = helper_util.getServiceManager(self.hostname, self.port,
                                                    self.uno_path,
                                                    self.office_binary_path)
    type_detection = service_manager.createInstance("com.sun.star.document.TypeDetection")
    uno_file_access = service_manager.createInstance("com.sun.star.ucb.SimpleFileAccess")
    doc = uno_file_access.openFileRead(self.systemPathToFileUrl(self.document_url))
    input_stream = self._createProperty("InputStream", doc)
    open_new_view = self._createProperty("OpenNewView", True)
    filter_name = type_detection.queryTypeByDescriptor((input_stream,
                                                        open_new_view), True)[0]
    doc.closeInput()
    metadata['MIMEType'] = mimemapper["mimetype_by_filter_type"].get(filter_name)
    return metadata
Ejemplo n.º 7
0
 def getMetadata(self):
     """Extract all metadata of the document"""
     metadata = {}
     document_info = self.document_loaded.getDocumentInfo()
     property_list = [prop.Name for prop in document_info.getPropertyValues() \
         if prop.Value]
     for property_name in iter(property_list):
         property = document_info.getPropertyValue(property_name)
         if type(property) == UnicodeType:
             metadata[property_name] = property
         elif type(property) == InstanceType:
             if property.typeName == 'com.sun.star.util.DateTime':
                 datetime = "%s/%s/%s %s:%s:%s" % (
                     property.Day, property.Month, property.Year,
                     property.Hours, property.Minutes, property.Seconds)
                 metadata[property_name] = datetime
     for number in range(document_info.getUserFieldCount()):
         field_value_str = document_info.getUserFieldValue(number)
         if field_value_str:
             fieldname = document_info.getUserFieldName(number)
             metadata[fieldname] = field_value_str
     service_manager = helper_util.getServiceManager(
         self.hostname, self.port, self.uno_path, self.office_binary_path)
     type_detection = service_manager.createInstance(
         "com.sun.star.document.TypeDetection")
     uno_file_access = service_manager.createInstance(
         "com.sun.star.ucb.SimpleFileAccess")
     doc = uno_file_access.openFileRead(
         self.systemPathToFileUrl(self.document_url))
     input_stream = self._createProperty("InputStream", doc)
     open_new_view = self._createProperty("OpenNewView", True)
     filter_name = type_detection.queryTypeByDescriptor(
         (input_stream, open_new_view), True)[0]
     doc.closeInput()
     metadata['MIMEType'] = mimemapper["mimetype_by_filter_type"].get(
         filter_name)
     return metadata
Ejemplo n.º 8
0
 def _load(self):
   """Create one document with basic properties
   refresh argument tells to uno environment to
   replace dynamic properties of document before conversion
   """
   service_manager = helper_util.getServiceManager(self.hostname, self.port,
                                                   self.uno_path,
                                                   self.office_binary_path)
   desktop = service_manager.createInstance("com.sun.star.frame.Desktop")
   uno_url = self.systemPathToFileUrl(self.document_url)
   uno_document = desktop.loadComponentFromURL(uno_url, "_blank", 0, ())
   if not uno_document:
     raise AttributeError("This document can not be loaded or is empty")
   if self.refresh:
     # Before converting to expected format, refresh dynamic
     # value inside document.
     dispatcher = service_manager.createInstance("com.sun.star.frame.DispatchHelper")
     for uno_command in ('UpdateFields', 'UpdateAll', 'UpdateInputFields',
                         'UpdateAllLinks', 'UpdateCharts',):
       dispatcher.executeDispatch(uno_document.getCurrentController().getFrame(),
                                  '.uno:%s' % uno_command, '', 0, ())
   module_manager = service_manager.createInstance("com.sun.star.frame.ModuleManager")
   self.document_type = module_manager.identify(uno_document)
   self.document_loaded = uno_document
Ejemplo n.º 9
0
 def __init__(self, hostname, port, uno_path=None, office_binary_path=None):
     """ Receives hostname and port from openoffice and create a service manager"""
     self.service_manager = helper_util.getServiceManager(hostname, port, uno_path, office_binary_path)
Ejemplo n.º 10
0
 def __init__(self, hostname, port, uno_path=None, office_binary_path=None):
     """ Receives hostname and port from openoffice and create a service manager"""
     self.service_manager = helper_util.getServiceManager(
         hostname, port, uno_path, office_binary_path)