summaryrefslogtreecommitdiff
path: root/addons/attachment_indexation/models
diff options
context:
space:
mode:
Diffstat (limited to 'addons/attachment_indexation/models')
-rw-r--r--addons/attachment_indexation/models/ir_attachment.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/addons/attachment_indexation/models/ir_attachment.py b/addons/attachment_indexation/models/ir_attachment.py
index 11152b6c2ea..05394e12698 100644
--- a/addons/attachment_indexation/models/ir_attachment.py
+++ b/addons/attachment_indexation/models/ir_attachment.py
@@ -4,15 +4,23 @@ import io
import logging
import xml.dom.minidom
import zipfile
-from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
-from pdfminer.converter import TextConverter
-from pdfminer.pdfpage import PDFPage
from odoo import api, models
_logger = logging.getLogger(__name__)
+
+try:
+ from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
+ from pdfminer.converter import TextConverter
+ from pdfminer.pdfpage import PDFPage
+except ImportError:
+ PDFResourceManager = PDFPageInterpreter = TextConverter = PDFPage = None
+ _logger.warning("Attachment indexation of PDF documents is unavailable because the 'pdfminer' Python library cannot be found on the system. "
+ "You may install it from https://pypi.org/project/pdfminer.six/ (e.g. `pip3 install pdfminer.six`)")
+
FTYPES = ['docx', 'pptx', 'xlsx', 'opendoc', 'pdf']
+
def textToString(element):
buff = u""
for node in element.childNodes:
@@ -93,6 +101,8 @@ class IrAttachment(models.Model):
def _index_pdf(self, bin_data):
'''Index PDF documents'''
+ if PDFResourceManager is None:
+ return
buf = u""
if bin_data.startswith(b'%PDF-'):
f = io.BytesIO(bin_data)