diff --git a/src/ocrmypdf/_options.py b/src/ocrmypdf/_options.py index 7df6e696..e7e44d4f 100644 --- a/src/ocrmypdf/_options.py +++ b/src/ocrmypdf/_options.py @@ -78,6 +78,7 @@ class OCROptions(BaseModel): output_file: PathOrIO sidecar: PathOrIO | None = None output_folder: Path | None = None + work_folder: Path | None = None # Core OCR options languages: list[str] = Field(default_factory=lambda: [DEFAULT_LANGUAGE]) diff --git a/src/ocrmypdf/api.py b/src/ocrmypdf/api.py index 482367a7..d4680a76 100644 --- a/src/ocrmypdf/api.py +++ b/src/ocrmypdf/api.py @@ -477,8 +477,11 @@ def _pdf_to_hocr( # noqa: D417 # Remove None values to let OCROptions use its defaults options_kwargs = {k: v for k, v in options_kwargs.items() if v is not None} + # Add output_folder to options_kwargs since it's now a proper field + options_kwargs['output_folder'] = output_folder + # Remove any kwargs that aren't OCROptions fields and store in extra_attrs - extra_attrs = {'output_folder': output_folder} + extra_attrs = {} ocr_fields = set(OCROptions.model_fields.keys()) known_extra = {'progress_bar', 'plugins'} @@ -573,8 +576,11 @@ def _hocr_to_ocr_pdf( # noqa: D417 # Remove None values to let OCROptions use its defaults options_kwargs = {k: v for k, v in options_kwargs.items() if v is not None} + # Add work_folder to options_kwargs since it's now a proper field + options_kwargs['work_folder'] = work_folder + # Remove any kwargs that aren't OCROptions fields and store in extra_attrs - extra_attrs = {'work_folder': work_folder} + extra_attrs = {} ocr_fields = set(OCROptions.model_fields.keys()) known_extra = {'progress_bar', 'plugins'}