[Erp5-report] r42893 jp - /erp5/trunk/products/ERP5/Document/PDFDocument.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 1 15:47:08 CET 2011
Author: jp
Date: Tue Feb 1 15:47:08 2011
New Revision: 42893
URL: http://svn.erp5.org?rev=42893&view=rev
Log:
Added conversion to DJVU
Modified:
erp5/trunk/products/ERP5/Document/PDFDocument.py
Modified: erp5/trunk/products/ERP5/Document/PDFDocument.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/PDFDocument.py?rev=42893&r1=42892&r2=42893&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/PDFDocument.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/PDFDocument.py [utf8] Tue Feb 1 15:47:08 2011
@@ -87,6 +87,14 @@ class PDFDocument(Image):
data = self._convertToText()
self.setConversion(data, mime=mime, format='txt')
return (mime, data)
+ elif format in ('djvu', 'DJVU'):
+ try:
+ return self.getConversion(format='djvu')
+ except KeyError:
+ mime = 'image/vnd.djvu'
+ data = self._convertToDJVU()
+ self.setConversion(data, mime=mime, format='djvu')
+ return (mime, data)
elif format is None:
return self.getContentType(), self.getData()
else:
@@ -197,6 +205,31 @@ class PDFDocument(Image):
'href="asEntireHTML')
return h
+ security.declarePrivate('_convertToDJVU')
+ def _convertToDJVU(self):
+ """
+ Convert the PDF text content to DJVU with pdf2djvu
+ """
+ if not self.hasData():
+ return ''
+ tmp = tempfile.NamedTemporaryFile()
+ tmp.write(self.getData())
+ tmp.seek(0)
+
+ command_result = None
+ try:
+ command = ['pdf2djvu', tmp.name]
+ try:
+ command_result = Popen(command, stdout=PIPE).communicate()[0]
+ except OSError, e:
+ if e.errno == errno.ENOENT:
+ raise ConversionError('pdf2djvu was not found')
+ raise
+
+ finally:
+ tmp.close()
+ return command_result
+
security.declareProtected(Permissions.AccessContentsInformation, 'getContentInformation')
def getContentInformation(self):
"""
More information about the Erp5-report
mailing list