# OCRmyPDF v17.6.0 - Product: OCRmyPDF (https://whatsnew.fyi/product/ocrmypdf) - Vendor: ocrmypdf - Date: 2026-07-17 - Version: v17.6.0 - Original notes: https://github.com/ocrmypdf/OCRmyPDF/releases/tag/v17.6.0 - Permalink: https://whatsnew.fyi/product/ocrmypdf/releases/v17.6.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Optimizer now logs a concise warning instead of a traceback when it encounters an image it cannot process, with full traceback available at debug verbosity - **changed** — --pdfa-image-compression=auto now selects lossless image compression at -O0 to prevent Ghostscript from transcoding lossless images to JPEG during PDF/A generation - **changed** — --pdfa-image-compression=lossless now passes existing JPEG images through unchanged rather than re-encoding them with a lossless codec - **added** — OCRmyPDF now validates and repairs malformed page-boundary boxes by reinterpreting coordinates in invalid exponential notation, normalizing reversed corner rectangles, and clamping boxes that fall outside the MediaBox - **changed** — OCRmyPDF now discards embedded Adobe full-text search index from its output to prevent stale search results in Acrobat - **changed** — OCRmyPDF now discards embedded per-page thumbnail images from its output since they would become stale after page alterations - **fixed** — Fixed OCR quality regression for PDFs that paint a 1-bit image mask with a gray or colored fill color by promoting the page to grayscale or full color as needed - **changed** — Default 1-bit raster device for Ghostscript is now pngmonod instead of pngmono for better OCR input on faint or anti-aliased scans - **changed** — When rasterizing pages with Ghostscript, OCRmyPDF now enables text and graphics anti-aliasing to improve OCR accuracy - **changed** — OCRmyPDF now logs which rasterizer rendered each page at debug verbosity and explains the OCR-quality trade-off in the --rasterizer help text - **changed** — When Tesseract reports a page with many diacritics, OCRmyPDF now also emits Tesseract's raw message at debug verbosity - **added** — Added --mode strip to remove the invisible OCR text layer from a PDF in place without rasterizing the page - When the optimizer encounters an image it cannot process (for example, an exotic colorspace that cannot be transcoded), it now logs a concise warning that the image was left unchanged rather than printing an alarming traceback. The output file was already valid in these cases; only the reporting was misleading. The full traceback is still available at debug verbosity (`-v 1`) ({issue}`846`). - `--pdfa-image-compression=auto` (the default) now selects lossless image compression at `-O0` so Ghostscript no longer transcodes lossless images to JPEG during PDF/A generation. At `-O1` and above, `auto` continues to defer to Ghostscript's heuristic, which may recompress images lossily. `-O1` (the default level) is kept as a historical exception because coercing it to lossless can substantially bloat output; users who want guaranteed lossless image handling should pass `--pdfa-image-compression=lossless` or use `-O0` ({issue}`1124`). - `--pdfa-image-compression=lossless` now passes existing JPEG images through unchanged rather than re-encoding them with a lossless codec. Re-encoding an already-lossy JPEG losslessly cannot recover quality and only inflates the file, so JPEGs are preserved while non-JPEG images are encoded losslessly. - OCRmyPDF now validates and repairs malformed page-boundary boxes (``/MediaBox``, ``/CropBox``, ``/TrimBox``, ``/ArtBox``, ``/BleedBox``) in its input, following the PDF 2.0 specification. Coordinates written in invalid exponential notation are reinterpreted ({issue}`1398`); rectangles whose corners are given in reversed order are normalized, which previously crashed with ``NegativeDimensionError`` ({issue}`1526`); and a crop/trim/art/bleed box that falls outside the MediaBox is clamped to their intersection, or discarded when that intersection is empty, which previously produced an output with a zero-height effective page that some viewers refused to open ({issue}`1400`). When a box is discarded, clamped, or reinterpreted, OCRmyPDF logs a warning recommending visual inspection of the output. Thanks @ajdlinux for the initial fix in PR #1691. - OCRmyPDF now discards an embedded Adobe full-text search index (``/Root/PieceInfo/SearchIndex``) from its output. This proprietary index, produced by Acrobat's "Embed Index" feature, is read only by Adobe Acrobat; other viewers ignore it and search the text on the fly. Because any change to a PDF invalidates the index, retaining it after OCRmyPDF rewrites the document would leave a stale index that returns incorrect search results in Acrobat. Modern viewers rebuild a search index on demand, so there is no loss of search capability. - OCRmyPDF now discards embedded per-page thumbnail images (the optional ``/Thumb`` image XObject on a page) from its output. OCRmyPDF alters page appearance (deskew, clean, rasterize, re-render) and plugins may edit pages arbitrarily, so a retained thumbnail would be stale and no longer match its page. Embedded thumbnails are a navigation aid that modern viewers generate on demand, so there is no loss of functionality. - Fixed a regression in OCR quality for PDFs that paint a 1-bit image mask (stencil) with a gray or colored fill color. Previously such pages were rasterized as 1-bit black-and-white before OCR, so Ghostscript dithered mid-tone text into an unreadable stipple and Tesseract failed to recognize it. The rasterizer now inspects the fill color used to paint a mask and promotes the page to grayscale or full color as needed, so the distinction is preserved for the OCR engine. This applies to both the Ghostscript and pypdfium rasterizers. {issue}`1688` - The default 1-bit raster device for Ghostscript is now ``pngmonod`` (error-diffusion) instead of ``pngmono`` (ordered dithering). It produces better input for OCR on faint or anti-aliased scans at negligible cost and no change to output file size, since the rasterized image is an int _[Truncated at 4000 characters — full notes: https://github.com/ocrmypdf/OCRmyPDF/releases/tag/v17.6.0]_