James R. Barlow
a35fcc9c43
Handle Ghostscript rasterization with DPI below 10
...
Ghostscript may fail when asked to rasterize at very low DPI values
(below 10 on either axis). This adds a workaround that uses a minimum
of 10 DPI for the Ghostscript call, then resizes the output image to
match the dimensions that would have resulted from the original low
DPI request.
Fixes #1612
2026-01-31 13:01:04 -08:00
James R. Barlow
bc745d4d81
Replace magic Ghostscript raster device strings with StrEnum
2026-01-20 10:44:25 -08:00
James R. Barlow
5acf21651f
ruff lint and format
2026-01-13 01:50:57 -08:00
James R. Barlow
122450c19e
Fix Ghostscript tests after default output type changed to 'auto'
...
- Add --output-type pdfa to tests that exercise Ghostscript-specific
behavior (test_gs_render_failure, test_ghostscript_pdfa_failure,
test_ghostscript_mandatory_color_conversion)
- Add Gs106WarningFilter to suppress expected Ghostscript 10.6.x JPEG
encoding warning in test logs
2026-01-09 01:02:25 -08:00
James R. Barlow
e613db6a82
Fix Ghostscript 10.6 JPEG corruption by repairing truncated images
...
Ghostscript 10.6 has a bug that truncates JPEG data by 1-15 bytes.
This adds detection and repair by comparing output images to input
images and restoring the original bytes when truncation is detected.
- Add warning when GS 10.6+ is used with PDF/A output
- Add _repair_gs106_jpeg_corruption() to fix damaged JPEGs after
Ghostscript processing
- Add unit tests for the repair function
2025-12-23 14:56:24 -08:00
James R. Barlow
175b743ffe
Fix version test
2025-07-03 11:30:05 -07:00
James R. Barlow
45cf92f40b
xfail Python logging bug in 3.13.3/4
2025-07-03 09:21:31 -07:00
James R. Barlow
137b054f43
Adjust test again for older Ghostscript
2025-01-27 23:44:37 -08:00
James R. Barlow
65df44f670
Modify tests to deal with variety of Ghostscript versions
2025-01-09 02:14:29 -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
James R. Barlow
fe89be5dc0
Fix test broken in commit 85d6fb8c
2024-11-27 15:44:12 -08:00
James R. Barlow
27d5229842
Make logger names unique
2023-11-09 23:03:39 -08:00
James R. Barlow
a596ccf844
Raise exception if resulting PDF might appear blank in a known in some PDF viewers
...
Fixes #1187
2023-11-09 22:33:22 -08:00
James R. Barlow
e7fa97731f
ghostscript duplicate filter: filter within a window of previous messages
2023-11-09 22:32:39 -08:00
James R. Barlow
1c45f32941
tests: replace many run_ocrmypdf -> run_ocrmypdf_api
2023-10-24 00:54:31 -07:00
James R. Barlow
fadc0cf69b
Replace cryptic test error messages with more informative ones
2023-10-24 00:54:31 -07:00
James R. Barlow
eb3a51e33a
Prefer pikepdf's newer Page.mediabox accessor over .MediaBox
2023-10-24 00:54:31 -07:00
James R. Barlow
7018e2b247
Refactor ghostscript error message deduplicating
2023-09-24 20:22:04 -07:00
James R. Barlow
80ed2117cc
Change to SPDX license tracking
2022-07-28 01:10:07 -07:00
James R. Barlow
dc6f1a266a
Modernize type annotations
2022-07-23 00:39:24 -07:00
James R. Barlow
3b406112d0
ghostscript: improve test coverage of error cases
2022-01-25 23:45:47 -08:00
James R. Barlow
13af3252ff
tests: simplify run_ocrmypdf API
2021-12-06 17:00:25 -08:00
James R. Barlow
37923ffe52
Work around Pillow 8.3.1 DPI changes
...
Pillow decided against round-tripping DPI values.
https://github.com/python-pillow/Pillow/pull/5476
Fixes #802
2021-07-14 02:34:28 -07:00
James R. Barlow
173a80864d
Delinting
2021-04-07 02:09:45 -07:00
James R. Barlow
aa115a8be3
Remove pytest_helpers_namespace
2021-04-07 01:56:51 -07:00
James R. Barlow
aa0ec40102
Change license of all GPLv3 files to MPL-2.0
...
https://github.com/jbarlow83/OCRmyPDF/issues/600
2020-08-05 00:44:42 -07:00
James R. Barlow
64891c2fc3
Pre-release delinting
2020-06-09 15:27:14 -07:00
James R. Barlow
0f942fb714
Rename ocrmypdf.exec -> ocrmypdf._exec
2020-06-09 14:59:09 -07:00
James R. Barlow
ebbf68bd08
The big payoff: abolishing spoofing machinery
2020-06-09 00:08:20 -07:00
James R. Barlow
2059e916da
Convert all ghostscript spoofs to test plugins
2020-06-09 00:00:25 -07:00
James R. Barlow
1598f2f0e5
Abolish spoof_tesseract_noop
2020-06-01 03:07:53 -07:00
James R. Barlow
94c52a6fa3
Refactor 'xyres' into Resolution
2020-04-24 04:12:05 -07:00
James R. Barlow
57771f06a3
Refactor xy-pair for resolution to tuple
2020-04-16 15:38:33 -07:00
James R. Barlow
d146d2b65c
The Great Logging Refactor
...
Remove all instances of logger object being passed as parameters.
This was a holdover from ruffus, and complicated a lot of simple things.
2020-04-14 23:59:33 -07:00
James R. Barlow
1037d73efb
tests: use smaller files for ghostscript
2019-12-31 17:20:28 -08:00
James R. Barlow
422ea9777e
Remove session scope from fixtures
...
pytest seems to prepare os.environ in complex ways, so we want to ensure
these fixtures are not reused.
2019-12-31 17:09:23 -08:00
James R. Barlow
4b759af6ff
tests: fix problems with ghostscript spoofers
2019-12-31 15:33:03 -08:00
James R. Barlow
c5edff2c2f
Sort imports
2019-12-19 15:31:18 -08:00
James R. Barlow
ca9669742d
Move gs tests to test_ghostscript
2019-12-04 17:14:27 -08:00
James R. Barlow
bcdd196699
ghostscript: remove unnecessary post-render resizing step
2019-05-11 12:10:50 -07:00