error = "Paperless can't find {}. Without it, consumption is impossible."
hint = "Either it's not in your ${PATH} or it's not installed."
- binaries = (settings.CONVERT_BINARY, "tesseract")
+ binaries = (settings.CONVERT_BINARY, "tesseract", "gs")
check_messages = []
for binary in binaries:
@register()
def check_default_language_available(app_configs, **kwargs):
- installed_langs = get_tesseract_langs()
+ errs = []
if not settings.OCR_LANGUAGE:
- return [
+ errs.append(
Warning(
"No OCR language has been specified with PAPERLESS_OCR_LANGUAGE. "
"This means that tesseract will fallback to english.",
),
- ]
-
- specified_langs = settings.OCR_LANGUAGE.split("+")
-
- for lang in specified_langs:
- if lang not in installed_langs:
- return [
- Error(
- f"The selected ocr language {lang} is "
- f"not installed. Paperless cannot OCR your documents "
- f"without it. Please fix PAPERLESS_OCR_LANGUAGE.",
- ),
- ]
-
- return []
+ )
+ return errs
+
+ # binaries_check in paperless will check and report if this doesn't exist
+ # So skip trying to do anything here and let that handle missing binaries
+ if shutil.which("tesseract") is not None:
+ installed_langs = get_tesseract_langs()
+
+ specified_langs = [x.strip() for x in settings.OCR_LANGUAGE.split("+")]
+
+ for lang in specified_langs:
+ if lang not in installed_langs:
+ errs.append(
+ Error(
+ f"The selected ocr language {lang} is "
+ f"not installed. Paperless cannot OCR your documents "
+ f"without it. Please fix PAPERLESS_OCR_LANGUAGE.",
+ ),
+ )
+
+ return errs