forked from mirrors/nixpkgs
4c268ee2cc
According to https://ocrmypdf.readthedocs.io/en/latest/api.html, it also provides a Python API.
161 lines
5.1 KiB
Diff
161 lines
5.1 KiB
Diff
diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py
|
|
index 5c357f1b..f459763a 100644
|
|
--- a/src/ocrmypdf/_exec/ghostscript.py
|
|
+++ b/src/ocrmypdf/_exec/ghostscript.py
|
|
@@ -25,28 +25,7 @@ from ocrmypdf.subprocess import get_version, run, run_polling_stderr
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
-missing_gs_error = """
|
|
----------------------------------------------------------------------
|
|
-This error normally occurs when ocrmypdf find can't Ghostscript.
|
|
-Please ensure Ghostscript is installed and its location is added to
|
|
-the system PATH environment variable.
|
|
-
|
|
-For details see:
|
|
- https://ocrmypdf.readthedocs.io/en/latest/installation.html
|
|
----------------------------------------------------------------------
|
|
-"""
|
|
-
|
|
-_gswin = None
|
|
-if os.name == 'nt':
|
|
- _gswin = which('gswin64c')
|
|
- if not _gswin:
|
|
- _gswin = which('gswin32c')
|
|
- if not _gswin:
|
|
- raise MissingDependencyError(missing_gs_error)
|
|
- _gswin = Path(_gswin).stem
|
|
-
|
|
-GS = _gswin if _gswin else 'gs'
|
|
-del _gswin
|
|
+GS = '@gs@'
|
|
|
|
|
|
def version():
|
|
diff --git a/src/ocrmypdf/_exec/jbig2enc.py b/src/ocrmypdf/_exec/jbig2enc.py
|
|
index 2e8a058b..65a09088 100644
|
|
--- a/src/ocrmypdf/_exec/jbig2enc.py
|
|
+++ b/src/ocrmypdf/_exec/jbig2enc.py
|
|
@@ -14,7 +14,7 @@ from ocrmypdf.subprocess import get_version, run
|
|
|
|
|
|
def version():
|
|
- return get_version('jbig2', regex=r'jbig2enc (\d+(\.\d+)*).*')
|
|
+ return get_version('@jbig2@', regex=r'jbig2enc (\d+(\.\d+)*).*')
|
|
|
|
|
|
def available():
|
|
@@ -27,7 +27,7 @@ def available():
|
|
|
|
def convert_group(*, cwd, infiles, out_prefix):
|
|
args = [
|
|
- 'jbig2',
|
|
+ '@jbig2@',
|
|
'-b',
|
|
out_prefix,
|
|
'-s', # symbol mode (lossy)
|
|
@@ -46,7 +46,7 @@ def convert_group_mp(args):
|
|
|
|
|
|
def convert_single(*, cwd, infile, outfile):
|
|
- args = ['jbig2', '-p', infile]
|
|
+ args = ['@jbig2@', '-p', infile]
|
|
with open(outfile, 'wb') as fstdout:
|
|
proc = run(args, cwd=cwd, stdout=fstdout, stderr=PIPE)
|
|
proc.check_returncode()
|
|
diff --git a/src/ocrmypdf/_exec/pngquant.py b/src/ocrmypdf/_exec/pngquant.py
|
|
index ca8a4542..d0544174 100644
|
|
--- a/src/ocrmypdf/_exec/pngquant.py
|
|
+++ b/src/ocrmypdf/_exec/pngquant.py
|
|
@@ -19,7 +19,7 @@ from ocrmypdf.subprocess import get_version, run
|
|
|
|
|
|
def version():
|
|
- return get_version('pngquant', regex=r'(\d+(\.\d+)*).*')
|
|
+ return get_version('@pngquant@', regex=r'(\d+(\.\d+)*).*')
|
|
|
|
|
|
def available():
|
|
@@ -46,7 +46,7 @@ def input_as_png(input_file: Path):
|
|
def quantize(input_file: Path, output_file: Path, quality_min: int, quality_max: int):
|
|
with input_as_png(input_file) as input_stream:
|
|
args = [
|
|
- 'pngquant',
|
|
+ '@pngquant@',
|
|
'--force',
|
|
'--skip-if-larger',
|
|
'--quality',
|
|
diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py
|
|
index 33ead41e..5840f7c1 100644
|
|
--- a/src/ocrmypdf/_exec/tesseract.py
|
|
+++ b/src/ocrmypdf/_exec/tesseract.py
|
|
@@ -78,7 +78,7 @@ class TesseractVersion(StrictVersion):
|
|
|
|
|
|
def version():
|
|
- return get_version('tesseract', regex=r'tesseract\s(.+)')
|
|
+ return get_version('@tesseract@', regex=r'tesseract\s(.+)')
|
|
|
|
|
|
def has_user_words():
|
|
@@ -100,7 +100,7 @@ def get_languages():
|
|
msg += output
|
|
return msg
|
|
|
|
- args_tess = ['tesseract', '--list-langs']
|
|
+ args_tess = ['@tesseract@', '--list-langs']
|
|
try:
|
|
proc = run(
|
|
args_tess,
|
|
@@ -122,7 +122,7 @@ def get_languages():
|
|
|
|
|
|
def tess_base_args(langs: List[str], engine_mode: Optional[int]) -> List[str]:
|
|
- args = ['tesseract']
|
|
+ args = ['@tesseract@']
|
|
if langs:
|
|
args.extend(['-l', '+'.join(langs)])
|
|
if engine_mode is not None:
|
|
diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py
|
|
index 3c3ae72c..d269966a 100644
|
|
--- a/src/ocrmypdf/_exec/unpaper.py
|
|
+++ b/src/ocrmypdf/_exec/unpaper.py
|
|
@@ -31,7 +31,7 @@ log = logging.getLogger(__name__)
|
|
|
|
|
|
def version() -> str:
|
|
- return get_version('unpaper')
|
|
+ return get_version('@unpaper@')
|
|
|
|
|
|
def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]:
|
|
@@ -71,7 +71,7 @@ def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]:
|
|
def run(
|
|
input_file: Path, output_file: Path, *, dpi: DecFloat, mode_args: List[str]
|
|
) -> None:
|
|
- args_unpaper = ['unpaper', '-v', '--dpi', str(round(dpi, 6))] + mode_args
|
|
+ args_unpaper = ['@unpaper@', '-v', '--dpi', str(round(dpi, 6))] + mode_args
|
|
|
|
with TemporaryDirectory() as tmpdir:
|
|
input_pnm, output_pnm = _setup_unpaper_io(Path(tmpdir), input_file)
|
|
diff --git a/src/ocrmypdf/leptonica.py b/src/ocrmypdf/leptonica.py
|
|
index e4814f1a..fdaf7ea4 100644
|
|
--- a/src/ocrmypdf/leptonica.py
|
|
+++ b/src/ocrmypdf/leptonica.py
|
|
@@ -33,14 +33,7 @@ from ocrmypdf.lib._leptonica import ffi
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
-if os.name == 'nt':
|
|
- from ocrmypdf.subprocess._windows import shim_env_path
|
|
-
|
|
- libname = 'liblept-5'
|
|
- os.environ['PATH'] = shim_env_path()
|
|
-else:
|
|
- libname = 'lept'
|
|
-_libpath = find_library(libname)
|
|
+_libpath = '@liblept@'
|
|
if not _libpath:
|
|
raise MissingDependencyError(
|
|
"""
|