From d9bbb80a6b81e68ccc269dc5e8af2dad8628b1b9 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Fri, 11 May 2018 12:42:00 -0700 Subject: [PATCH] Don't try to run jbig2 when not available --- src/ocrmypdf/_optimize.py | 2 +- src/ocrmypdf/exec/jbig2enc.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ocrmypdf/_optimize.py b/src/ocrmypdf/_optimize.py index fffdc28a..67b15565 100644 --- a/src/ocrmypdf/_optimize.py +++ b/src/ocrmypdf/_optimize.py @@ -133,7 +133,7 @@ def extract_image(*, doc, pike, root, log, image, xref, jbig2s, return False filtdp = filtdps[0] - if bpc == 1 and filtdp[0] != '/JBIG2Decode': + if bpc == 1 and filtdp[0] != '/JBIG2Decode' and jbig2enc.available(): if filtdp[0] == '/CCITTFaxDecode': data = image.read_raw_bytes() try: diff --git a/src/ocrmypdf/exec/jbig2enc.py b/src/ocrmypdf/exec/jbig2enc.py index 10d1285c..510e3715 100644 --- a/src/ocrmypdf/exec/jbig2enc.py +++ b/src/ocrmypdf/exec/jbig2enc.py @@ -22,7 +22,7 @@ import os import shutil from . import get_version -from ..exceptions import ExitCode +from ..exceptions import ExitCode, MissingDependencyError @lru_cache(maxsize=1) @@ -30,6 +30,15 @@ def version(): return get_version('jbig2enc', regex=r'jbig2enc (\d+(\.\d+)*).*') +@lru_cache(maxsize=1) +def available(): + try: + version() + except MissingDependencyError: + return False + return True + + def convert_group(*, cwd, infiles, out_prefix): args = [ 'jbig2',