From ce930aa16e9776ab38bd73da2bdba2cd6d17434e 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 b4df6e1c..2b156315 100644 --- a/src/ocrmypdf/exec/tesseract.py +++ b/src/ocrmypdf/exec/tesseract.py @@ -195,6 +195,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: @@ -264,8 +267,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 @@ -362,9 +363,6 @@ def generate_pdf(*, input_image, skip_pdf, 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