James R. Barlow and aider
dab969f97d
refactor: update context management with OCROptions type hints
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:47 -08:00
James R. Barlow
480a8253eb
refactor: propagate lossless_reconstruction option to clean_options in PageContext
2025-12-21 12:21:47 -08:00
James R. Barlow and aider
8a06dd478a
refactor: update pipeline functions to use OCROptions instead of argparse.Namespace
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:47 -08:00
James R. Barlow and aider
4dbd34f06a
refactor: update type hint for do_get_pdfinfo to accept generic options
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:47 -08:00
James R. Barlow and aider
8668cf4524
fix: add type conversion for pages in pipeline common
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:47 -08:00
James R. Barlow and aider
1d74c2831f
refactor: update pipeline entry points to use OCROptions directly
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:46 -08:00
James R. Barlow and aider
7b37f57b1c
refactor: replace Namespace with OCROptions in plugins and validation
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:46 -08:00
James R. Barlow
d4b7165d72
fix: resolve pickling issue with Pydantic validators in PageContext
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
Fix pickling issue
2025-12-21 12:21:46 -08:00
James R. Barlow and aider
f5bfd2fd3e
Add compat function for pages_from_ranges
...
fix: handle Pydantic validation errors with correct exit code
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-21 12:21:46 -08:00
James R. Barlow and aider
7575dddefc
fix: add lossless_reconstruction attribute to OCROptions for compatibility
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
fix: resolve recursion error in lossless_reconstruction option
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
fix: ensure lossless_reconstruction attribute is added to Namespace
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
fix: ensure lossless_reconstruction attribute is correctly propagated to PageContext
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:42:49 -08:00
James R. Barlow and aider
66a3e8508e
feat: add comprehensive validators to OCROptions
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:42:23 -08:00
James R. Barlow and aider
d2add01217
fix: remove deprecated set_lossless_reconstruction import and call
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:42:23 -08:00
James R. Barlow and aider
4476e81240
refactor: remove redundant validation functions from _validation.py
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:42:23 -08:00
James R. Barlow and aider
a373fcd649
fix: add jobs fallback in pipeline common
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:42:23 -08:00
James R. Barlow
87478bc240
Fix options.jpg_quality issue
2025-12-13 11:42:23 -08:00
James R. Barlow and aider
04ad78f01d
refactor: replace OptimizeOptions with OCROptions in tests
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:58 -08:00
James R. Barlow and aider
62c3ae80c7
fix: ensure pickling compatibility for OCROptions in multiprocessing
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:58 -08:00
James R. Barlow
d556014185
Remove language warning
2025-12-13 11:41:58 -08:00
James R. Barlow and aider
d18efcbbf1
fix: support flexible type inputs for pages and unpaper_args
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:27 -08:00
James R. Barlow and aider
f9a4a2e240
fix: handle missing input_file in OCROptions namespace conversion
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:27 -08:00
James R. Barlow and aider
5f89100dc3
test: add lossless_reconstruction field to OCROptions
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:27 -08:00
James R. Barlow and aider
1ef9aaf659
fix: Correct PDF/A part extraction and handle hOCR API output file
...
This commit addresses two issues:
1. Properly extract the PDF/A part from output_type
2. Add a placeholder output_file for hOCR API tests when output_folder is used
The changes include:
- Modifying `from_namespace` to add a placeholder output_file
- Updating PDF/A part extraction logic to handle different output_type formats
- Ensuring correct PDF/A part is passed to Ghostscript
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:27 -08:00
James R. Barlow and aider
4c4a1cfa17
fix: Resolve API test failures with pdf_renderer and output_file handling
...
This commit addresses several issues in the OCRmyPDF API:
- Fixed handling of 'auto' pdf_renderer by defaulting to 'hocr'
- Added placeholder for output_file when output_folder is present
- Updated model_fields access to use class method instead of instance attribute
- Improved error handling and default behavior in PDF rendering
Specifically:
- Modified `_options.py` to handle 'auto' pdf_renderer
- Updated attribute access to use class methods
- Added placeholder for output_file in special cases
- Updated `_pipelines/ocr.py` to handle 'auto' pdf_renderer
These changes resolve the test failures in `test_api.py` and improve the library's flexibility.
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:41:27 -08:00
James R. Barlow and aider
5251e21f7e
refactor: migrate OCROptions validators to Pydantic V2
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:40:57 -08:00
James R. Barlow and aider
28eb923d9f
feat: rename _extra_attrs to extra_attrs in OCROptions
...
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:40:57 -08:00
James R. Barlow and aider
1579337ebe
refactor: Create OCROptions model with Namespace compatibility
...
This commit introduces a new `OCROptions` class in `_options.py` that provides:
- Proper typing for OCRmyPDF options
- Pydantic validation
- Backward compatibility with `argparse.Namespace`
- Gradual migration support for the options system
Key changes:
- Added comprehensive option fields with type hints
- Implemented custom attribute access methods
- Created conversion methods between Namespace and OCROptions
- Updated type hints in multiple files to support both types
- Maintained existing validation logic
The new model allows for a step-by-step refactoring of the options handling throughout the project.
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat >
2025-12-13 11:40:57 -08:00
James R. Barlow
f4c6c8121b
Work around Ghostscript 10.6.0 JPEG encoding issue by forcing optimization.
...
Not an ideal fix, but it improves an issue affecting numerous users.
Fixes #1585 .
2025-11-10 17:01:02 -08:00
James R. Barlow
a385cd967d
docs: Improve ocrmypdf.api
2025-11-10 15:58:47 -08:00
James R. Barlow
2f72f8e94a
ghostscript: Disable subset fonts
...
For at least the PDF associated with this issue, disabling subset
fonts prevents Ghostscript from mangling the encoding when it is usable but not well-formed.
Fixes #1592
2025-11-10 15:58:14 -08:00
James R. Barlow and aider
ee47e986f3
docs: Improve module-level docstring for OCRmyPDF Python API
...
Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat >
2025-11-10 10:33:26 -08:00
James R. Barlow
abc2d41e2d
Require recent pikepdf to fix check_pdf_syntax issue
2025-10-29 11:40:51 -07:00
James R. Barlow
38d60ea89b
optimize: don't put flate on large jpegs unless compression is high
...
Putting flate on very large JPEGs can cause performance problems in PDF viewers, subjectively anyway.
2025-10-29 11:39:20 -07:00
James R. Barlow
b213efb030
Account for new deskew output error message from recent Tesseract
...
Fixes #1576
2025-10-16 09:50:03 +02:00
James R. Barlow
414d80fc16
Deprecate semfree and don't auto activate it
...
Instead the standard executor will fall back to threads.
semfree caused test failures with Py3.14:
https://github.com/ocrmypdf/OCRmyPDF/issues/1558
In retrospect and with emerging Python tech like freethreading, semfree is becoming less necessary. We can use threads for the time being.
A consequence is that performance may be lower on Lambda and Termux when we are using threads and not shelling out work.
2025-09-11 17:13:04 -07:00
James R. Barlow
7e7e2f2e91
Raw value in pdfa XML block uses upper case codes, so account for this
2025-09-08 12:46:26 -07:00
5HT2
a7b0c0df6c
fix(src): Refactor CLI help references to PDF/A compliance levels
...
Please see [RFC8118 4.](https://datatracker.ietf.org/doc/html/rfc8118#section-4 ) for examples regarding the PDF/A compliance naming scheme.
Please see [RFC8118 [ISOPDFA]](https://datatracker.ietf.org/doc/html/rfc8118#ref-ISOPDFA ) for more complete information regarding the PDF/A compliance naming scheme.
2025-08-31 20:37:41 +01:00
5HT2
d735791524
fix(src): Refactor valid_part_conforms for PDF/A compliance levels
2025-08-31 20:32:30 +01:00
Alina Bürge and GitHub
a9a8b39dba
Fix the use of the plugin_manager argument ( #1555 )
2025-08-18 13:00:39 -07:00
James R. Barlow
6af22051a8
Avoid call to deprecated pdf.check() where possible
2025-08-13 01:15:33 -07:00
James R. Barlow
61163c2aa9
Fix stupid Python runtimeerror
2025-06-13 01:46:30 -07:00
James R. Barlow
332369f1b0
Adjust set_start_method decision, changing fork to forkserver for platforms other than win32, darwin
2025-06-13 01:22:01 -07:00
James R. Barlow
3beabf55e7
Skip optimizing images with pre-blended soft masks
...
Fixes issue [Bug]: Optimized pdf not rendering with Quartz / Core Graphics #1536
2025-06-12 23:58:43 -07:00
BBC-Esq and GitHub
0970cebfea
Update _hocr.py
2025-03-08 07:37:37 -05:00
James R. Barlow
c05ed7297c
Merge branch 'main' of github.com:ocrmypdf/OCRmyPDF
2025-02-26 15:16:07 -08:00
Odin Dahlström and James R. Barlow
c29f58a8b7
Process hOCR textangle attribute
2025-02-26 15:09:59 -08:00
jbarlow and GitHub
eb303fef1a
Merge pull request #1441 from aliemjay/fix-prog-bar
2025-02-26 15:05:54 -08:00
James R. Barlow
19af116034
Tidy whitespace
2025-02-06 00:40:35 -08:00
Odin Dahlström
b7d63f3dc1
Process ocr_caption lines
2025-01-30 17:49:06 +01:00
Quentin Fuxa and GitHub
66bc4a3733
Improve docs for _progressbar.py ( #1456 )
2025-01-09 12:21:21 -08:00
James R. Barlow
6edc749023
Fix error handling when PDF contains an invalid image with both ImageMask and ColorSpace set
...
Fixes #1453
2025-01-07 00:27:07 -08:00