From 6f554c6ae885a552c1aead27bf0f7e6c23960f55 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Wed, 3 Oct 2018 15:11:34 -0700 Subject: [PATCH] tesseract: account for behavior changes when params are missing Tesseract 4.0-rc1 now accepts invalid parameters in config and won't return an error anymore. We prefer to raise an error if this occurs. See: https://github.com/tesseract-ocr/tesseract/commit/741ea00d7059d8ff7c55797ffc525a461d7f3ced --- src/ocrmypdf/exec/tesseract.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/ocrmypdf/exec/tesseract.py b/src/ocrmypdf/exec/tesseract.py index f61a6959..867c86cc 100644 --- a/src/ocrmypdf/exec/tesseract.py +++ b/src/ocrmypdf/exec/tesseract.py @@ -194,6 +194,9 @@ def tesseract_log_output(log, stdout, input_file): log.error(prefix + line.strip()) elif 'warning' in line.lower(): log.warning(prefix + line.strip()) + elif 'parameter not found: ' in line.lower(): + problem = line.split('found: ')[1] + raise TesseractConfigError(problem) elif 'read_params_file' in line.lower(): log.error(prefix + line.strip()) else: @@ -263,8 +266,6 @@ def generate_hocr(input_file, output_files, language: list, engine_mode, _generate_null_hocr(output_hocr, output_sidecar, input_file) except CalledProcessError as e: tesseract_log_output(log, e.output, input_file) - if b'read_params_file: parameter not found' in e.output: - raise TesseractConfigError() from e if b'Image too large' in e.output: _generate_null_hocr(output_hocr, output_sidecar, input_file) return @@ -350,9 +351,6 @@ def generate_pdf(*, input_image, skip_pdf=None, output_pdf, output_text, use_skip_page(text_only, skip_pdf, output_pdf, output_text) except CalledProcessError as e: tesseract_log_output(log, e.output, input_image) - if b'read_params_file: parameter not found' in e.output: - raise TesseractConfigError() from e - if b'Image too large' in e.output: use_skip_page(text_only, skip_pdf, output_pdf, output_text) return