github ocrmypdf/OCRmyPDF v17.7.1

latest release: v17.8.0
3 hours ago
  • Fixed a severe, Windows-specific performance regression in the "Scanning
    contents" phase, most visible with --redo-ocr ({issue}1662). Since
    v16.4.3, OCRmyPDF forced pdfminer's read buffer to 256 MiB to work around a
    pdfminer bug that mishandled tokens split across the buffer boundary
    ({issue}1361). On Windows, CPython's BufferedReader.read() eagerly
    allocates a buffer of the requested size on every read, so the oversized
    buffer made each of pdfminer's thousands of reads cost tens of milliseconds
    (this allocation is lazy, and effectively free, on Linux). The underlying
    pdfminer bug was fixed upstream in pdfminer.six 20250327
    (#1030), with a
    follow-up for tokens split across streams in 20260107
    (#1158), so the
    workaround has been removed and the minimum pdfminer.six version raised to
    20260107.
  • The font discovery used to build the OCR text layer now finds variable fonts
    such as NotoSansArabic[wdth,wght].ttf, the form shipped by Homebrew casks
    and current Google Fonts releases. Previously only static -Regular.ttf/.otf
    files were matched, so users who had installed the correct Noto font still got
    the glyphless fallback and a "No font found" warning ({issue}1652).
  • Font discovery is now language-aware for CJK: each Chinese, Japanese, and
    Korean language maps to its own per-language Noto family (NotoSansSC, TC, HK,
    JP, KR), with the pan-CJK super font kept as a shared fallback, since the
    per-language fonts are region subsets that may lack glyphs from other scripts.
  • The warning shown when no installed font has glyphs for some text was reworded
    to explain the consequence — the text is still added as a searchable, copyable
    layer but appears blank when highlighted in a viewer — and to name the specific
    font family to install.

Don't miss a new OCRmyPDF release

NewReleases is sending notifications on new releases.