[Erp5-report] r24292 - /erp5/trunk/products/ERP5/Document/Image.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Oct 22 18:59:56 CEST 2008


Author: romain
Date: Wed Oct 22 18:59:55 2008
New Revision: 24292

URL: http://svn.erp5.org?rev=24292&view=rev
Log:
Allow image to text convertion by using portal_transforms.

Modified:
    erp5/trunk/products/ERP5/Document/Image.py

Modified: erp5/trunk/products/ERP5/Document/Image.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Image.py?rev=24292&r1=24291&r2=24292&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Image.py (original)
+++ erp5/trunk/products/ERP5/Document/Image.py Wed Oct 22 18:59:55 2008
@@ -50,8 +50,9 @@
 from OFS.Image import getImageInfo
 from OFS.content_types import guess_content_type
 
-from zLOG import LOG
-
+from zLOG import LOG, WARNING
+
+from Products.CMFCore.utils import getToolByName
 
 default_displays_id_list = ('nano', 'micro', 'thumbnail',
                             'xsmall', 'small', 'medium',
@@ -310,7 +311,25 @@
     Implementation of conversion for PDF files
     """
     if format in ('text', 'txt', 'html', 'base_html', 'stripped-html'):
-      return None, None
+      mime_type = getToolByName(self, 'mimetypes_registry').\
+                                  lookupExtension('name.%s' % format)
+      src_mimetype = self.getContentType()
+      content = '%s' % self.getData()
+      if content is not None:
+        portal_transforms = getToolByName(self, 'portal_transforms')
+        result = portal_transforms.convertToData(mime_type, content,
+                                                 object=self, context=self,
+                                                 filename=self.title_or_id(),
+                                                 mimetype=src_mimetype)
+        if result is None:
+            # portal_transforms fails to convert.
+            LOG('TextDocument.convert', WARNING,
+                'portal_transforms failed to convert to %s: %r' % (mime_type, self))
+            result = ''
+        return mime_type, result
+      else:
+        # text_content is not set, return empty string instead of None
+        return mime_type, ''
     image_size = self.getSizeFromImageDisplay(display)
     if (display is not None or resolution is not None or quality != 75 or format != ''\
                             or frame is not None) and image_size:
@@ -327,6 +346,17 @@
                                          frame=frame, image_size=image_size)
         return mime, image.data
     return self.getContentType(), self.getData()
+
+  security.declareProtected(Permissions.View, 'getSearchableText')
+  def getSearchableText(self, md=None):
+    """
+      Converts the content of the document to a textual representation.
+    """
+    mime, data = self.convert(format='txt')
+    return str(data)
+
+  # Compatibility with CMF Catalog
+  SearchableText = getSearchableText
 
   # Display
   security.declareProtected('View', 'index_html')




More information about the Erp5-report mailing list