OCRmyPDF

Проект OCRmyPDF · лицензия MPL-2.0

Добавляет текстовый слой в отсканированные PDF: договор, акт или счёт после сканера начинают искаться, текст копируется, и агент может прочитать его сам.

macOS · Windows · LinuxНа компьютере, на сервере и в контейнереБесплатно, MPL-2.0

✓ Проверено 07.10.2026: Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере: пакет ocrmypdf 15.2.0 из apt ради Tesseract 5.3.4 и Ghostscript 10.02.1, поверх него OCRmyPDF 17.13.0 через uv 0.12.23. Что именно проверяли

Установить агентом ↓

Какую задачу решает

Добавляет текстовый слой в отсканированные PDF. Под картинкой страницы появляется распознанный текст: в файле работает поиск, текст копируется, и агент может достать его и прочитать сам. Распознаёт Tesseract, OCRmyPDF разбирает PDF на страницы и собирает новый файл.

  • Делает из скана договора, акта или счёта PDF, в котором ищутся слова и номера.
  • Распознаёт сразу несколько языков, например русский с английским: ключ -l rus+eng.
  • Ставит прямо страницы, которые в скане повёрнуты неправильно (--rotate-pages), и выравнивает перекошенные (--deskew), так написано в README проекта.
  • С ключом --skip-text не распознаёт заново страницы, где текст уже есть, и берётся только за сканы.
  • По умолчанию старается сохранить результат в архивном формате PDF/A, в нашем прогоне вышел PDF/A-2b.

Пример результата

Говоришь агенту

В папке scans лежит act.pdf, скан акта на двух страницах, текста в нём нет. Распознай его на русском и английском, сохрани рядом как act-ocr.pdf и покажи, какой текст теперь достаётся из файла.

Что получится

Рядом появляется act-ocr.pdf, в котором работает поиск и копируется текст. Агент достаёт текст из нового файла, показывает его и просит сверить суммы и номера со сканом. Файл act.pdf остаётся без изменений.

Паспорт

Кто делает
Проект OCRmyPDF
Исходный код
github.com/ocrmypdf/OCRmyPDF
Лицензия
MPL-2.0
Версия
17.13.0 на 07.10.2026
Системы
macOS · Windows · Linux
Где работает
На компьютере, на сервере и в контейнере
Цена
Бесплатно
Проверка
Проверено 07.10

Установить агентом

Для Claude Code, Codex, Hermes и любого агента с терминалом
Установи программу «OCRmyPDF». Работай по шагам и после каждого коротко говори, что сделал.

Что это за программа (каталог smyslokod.ru, официальные источники сверены 07.10.2026):
- официальный сайт: https://ocrmypdf.readthedocs.io/en/latest/
- исходный код: https://github.com/ocrmypdf/OCRmyPDF
- инструкция по установке: https://ocrmypdf.readthedocs.io/en/latest/installation.html
- актуальная версия на 07.10.2026: 17.13.0
- лицензия: MPL-2.0
- для работы нужно (обязательно): Tesseract - распознаёт текст на страницах. При установке через Homebrew или apt он ставится вместе с OCRmyPDF. Перед установкой через uv на Linux его берут из пакета apt, на Windows ставят командой winget
- для работы нужно (очень желательно): Ghostscript - по документации нужен для части преобразований в PDF/A. Homebrew и apt ставят его вместе с OCRmyPDF, на Windows его качают со страницы загрузки
- для работы нужно (в отдельных случаях): uv - через него документация ставит OCRmyPDF на Windows, а на Linux свежую версию поверх пакета дистрибутива. При необходимости uv ставит и подходящий Python
- для работы нужно (в отдельных случаях): Homebrew - на Mac OCRmyPDF ставится через него
- для работы нужно (в отдельных случаях): jbig2enc - без него, по документации, OCRmyPDF работает, но файлы выходят больше. В Ubuntu 24.04 и Debian 13 это пакет jbig2, в Homebrew он входит в формулу OCRmyPDF

Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Если ставишь из PyPI (пакет ocrmypdf), то только в отдельное окружение: uv tool install или pipx. В окружение проекта и в системный Python не ставь.
5. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
6. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
7. Исходный PDF не перезаписывай: результат сохраняй рядом под новым именем, например act-ocr.pdf.
8. Перед распознаванием проверь через tesseract --list-langs, что нужные языки стоят. Для русских документов запускай с -l rus+eng.
9. После распознавания достань текст из нового файла, покажи кусок и попроси меня сверить суммы, номера и даты со сканом.
10. Если программа вышла с кодом 6, скажи мне и предложи --skip-text или --redo-ocr. --force-ocr запускай только с моего «да»: он переводит в картинку всё содержимое страниц, включая обычный текст.

Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
   - на компьютере: на Mac проще всего Homebrew. Для Linux подойдёт пакет дистрибутива, а если нужна последняя версия, поверх него ставят uv tool install ocrmypdf.
   - на сервере: окно программе не нужно, и при распознавании она у нас не открыла ни одного сетевого соединения. На Ubuntu 24.04 пакет apt и OCRmyPDF через uv встали за 94 и 96 секунд в двух прогонах, а две страницы A4 распознались за 23 и 14 секунд.
   - в контейнере: в чистом образе ubuntu:24.04 сначала нужен apt-get update. Русского языка для Tesseract в пакете ocrmypdf нет, его добавляет apt-get install tesseract-ocr-rus.
1. Проверь, не стоит ли программа уже: ocrmypdf --version ; which -a ocrmypdf. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Проверь, что есть всё нужное для работы: Tesseract, Ghostscript. Чего нет, внеси в план отдельным пунктом. Проверь свободное место на диске: нужно Окружение uv с OCRmyPDF 17.13.0 в нашем прогоне заняло 129 МБ. Пакет apt в Ubuntu 24.04 поставил вместе с собой 166 пакетов, их общий объём мы не мерили. Установочный файл с PyPI весит 562 КБ, остальное - зависимости..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
   Способы из официальных источников:
   - macOS, Homebrew: brew install ocrmypdf (ставит текущую версию из формулы, на 07.10.2026 это 17.13.0, вместе с Tesseract, Ghostscript, jbig2enc, pngquant и unpaper. Из языков Tesseract с ним идёт только английский, русский добавит brew install tesseract-lang (все языки сразу). На Mac мы не проверяли)
   - Windows, uv: uv tool install ocrmypdf (перед ней по документации: winget install -e --id tesseract-ocr.tesseract, winget install -e --id astral-sh.uv и Ghostscript со страницы загрузки. Команда ставит последнюю версию с PyPI. Открой новое окно терминала, чтобы команды попали в PATH)
   - Linux, apt: sudo apt-get update && sudo apt-get -y install ocrmypdf (Debian и Ubuntu. Ставит версию из репозитория дистрибутива: в Ubuntu 24.04 это 15.2.0, в нашем прогоне вместе с ней встало 166 пакетов, включая Tesseract и Ghostscript. Русский язык: sudo apt-get install tesseract-ocr-rus)
   - Linux, uv: uv tool install ocrmypdf==17.13.0 (так мы и ставили: сначала пакет apt из строки выше ради Tesseract и Ghostscript, потом эта команда. Без ==17.13.0 uv поставит последнюю версию с PyPI. Команда попадёт в ~/.local/bin, по документации uv для программы создаётся своё окружение в папке инструментов uv, отдельно от проектов)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
   - ocrmypdf --version: программа запускается без ошибки;
   - Сделай PDF из двух страниц-картинок с известным текстом на русском и английском, без текстового слоя, и проверь, что текст из него не достаётся. Распознай его с -l rus+eng и проверь, что в новом файле нашлись все строки, в нём две страницы и он сохранён как PDF/A. Запусти распознавание ещё раз на готовом файле: без ключей программа должна отказаться с кодом 6, с --skip-text пройти. Делай это во временной папке и не трогай мои файлы.
     ocrmypdf --version
     tesseract --list-langs
     ocrmypdf -l rus+eng --rotate-pages --deskew scan.pdf scan-ocr.pdf
     ocrmypdf -l rus+eng scan-ocr.pdf again.pdf
     ocrmypdf -l rus+eng --skip-text scan-ocr.pdf again.pdf
   - если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS, Homebrew: brew uninstall ocrmypdf; Windows и Linux, uv: uv tool uninstall ocrmypdf; Linux, apt: sudo apt-get remove ocrmypdf).

Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/ocrmypdf#problemy

Промпт собран из официальных инструкций, сверенных 07.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.

Как ставят вручную

Способы из официальных источников, у каждого ссылка на первоисточник.

  • macOS · Homebrew · источник

    brew install ocrmypdf

    ставит текущую версию из формулы, на 07.10.2026 это 17.13.0, вместе с Tesseract, Ghostscript, jbig2enc, pngquant и unpaper. Из языков Tesseract с ним идёт только английский, русский добавит brew install tesseract-lang (все языки сразу). На Mac мы не проверяли

  • Windows · uv · источник

    uv tool install ocrmypdf

    перед ней по документации: winget install -e --id tesseract-ocr.tesseract, winget install -e --id astral-sh.uv и Ghostscript со страницы загрузки. Команда ставит последнюю версию с PyPI. Открой новое окно терминала, чтобы команды попали в PATH

  • Linux · apt · источник

    sudo apt-get update && sudo apt-get -y install ocrmypdf

    Debian и Ubuntu. Ставит версию из репозитория дистрибутива: в Ubuntu 24.04 это 15.2.0, в нашем прогоне вместе с ней встало 166 пакетов, включая Tesseract и Ghostscript. Русский язык: sudo apt-get install tesseract-ocr-rus

  • Linux · uv · источник

    uv tool install ocrmypdf==17.13.0

    так мы и ставили: сначала пакет apt из строки выше ради Tesseract и Ghostscript, потом эта команда. Без ==17.13.0 uv поставит последнюю версию с PyPI. Команда попадёт в ~/.local/bin, по документации uv для программы создаётся своё окружение в папке инструментов uv, отдельно от проектов

Как удалить

  • macOS, Homebrew: brew uninstall ocrmypdf
  • Windows и Linux, uv: uv tool uninstall ocrmypdf
  • Linux, apt: sudo apt-get remove ocrmypdf

Что нужно для работы

  • Tesseract (обязательно) - распознаёт текст на страницах. При установке через Homebrew или apt он ставится вместе с OCRmyPDF. Перед установкой через uv на Linux его берут из пакета apt, на Windows ставят командой winget
  • Ghostscript (очень желательно) - по документации нужен для части преобразований в PDF/A. Homebrew и apt ставят его вместе с OCRmyPDF, на Windows его качают со страницы загрузки
  • uv (в отдельных случаях) - через него документация ставит OCRmyPDF на Windows, а на Linux свежую версию поверх пакета дистрибутива. При необходимости uv ставит и подходящий Python
  • Homebrew (в отдельных случаях) - на Mac OCRmyPDF ставится через него
  • jbig2enc (в отдельных случаях) - без него, по документации, OCRmyPDF работает, но файлы выходят больше. В Ubuntu 24.04 и Debian 13 это пакет jbig2, в Homebrew он входит в формулу OCRmyPDF

Системы

  • macOS - ставится через Homebrew одной командой, вместе с Tesseract и Ghostscript.
  • Windows - одной командой не ставится: по документации сначала Tesseract и uv через winget, Ghostscript вручную со страницы загрузки, потом сам OCRmyPDF через uv. 32-битная Windows не поддерживается. Установку на Windows мы сами не прогоняли.
  • Linux - есть пакет в Debian, Ubuntu и Fedora, но он может отставать на несколько больших версий. Свежую версию документация советует ставить через uv поверх пакета дистрибутива.

Где запускать

Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.

  • На компьютере - на Mac проще всего Homebrew. Для Linux подойдёт пакет дистрибутива, а если нужна последняя версия, поверх него ставят uv tool install ocrmypdf.
  • На сервере - окно программе не нужно, и при распознавании она у нас не открыла ни одного сетевого соединения. На Ubuntu 24.04 пакет apt и OCRmyPDF через uv встали за 94 и 96 секунд в двух прогонах, а две страницы A4 распознались за 23 и 14 секунд.
  • В контейнере - в чистом образе ubuntu:24.04 сначала нужен apt-get update. Русского языка для Tesseract в пакете ocrmypdf нет, его добавляет apt-get install tesseract-ocr-rus.

Сколько ресурсов нужно

Место на диске
Окружение uv с OCRmyPDF 17.13.0 в нашем прогоне заняло 129 МБ. Пакет apt в Ubuntu 24.04 поставил вместе с собой 166 пакетов, их общий объём мы не мерили. Установочный файл с PyPI весит 562 КБ, остальное - зависимости.
Видеокарта
В нашем прогоне видеокарта не понадобилась.
Сеть
Нужна при установке: apt качает пакеты из репозитория дистрибутива, uv берёт OCRmyPDF и зависимости с PyPI (в прогоне это были адреса Fastly, на которые указывают pypi.org и files.pythonhosted.org). apt в прогоне ходил к archive.ubuntu.com и security.ubuntu.com, а ещё к deb.nodesource.com: этот источник Node.js был заранее прописан в образе нашей песочницы, OCRmyPDF он не нужен. Во время распознавания программа не открыла ни одного сетевого соединения, это записано в прогоне. Куда агент потом отправит распознанный текст, зависит от него самого.

Две страницы A4 в 300 точек на дюйм OCRmyPDF распознавал двумя параллельными процессами, в двух прогонах это заняло 23 и 14 секунд.

Лицензия и платные замены

Лицензия MPL-2.0. Сама программа идёт под Mozilla Public License 2.0. По README её можно встраивать в чужой код, в том числе закрытый, но свои изменения в коде OCRmyPDF надо публиковать. Вспомогательный код в основном под MIT, документация и тесты под CC BY-SA 4.0. Чтобы обрабатывать свои файлы, делать ничего не нужно. Текст лицензии

Цена: Бесплатно

Платные замены

Платную программу, которую агент запускал бы из терминала так же, мы не подбирали. OCRmyPDF и Tesseract бесплатные.

Бесплатные замены

  • Tesseract - Движок распознавания под лицензией Apache-2.0, на котором работает OCRmyPDF. Его можно звать напрямую, но PDF на вход он не берёт: страницы агенту придётся сначала сохранить картинками, а потом собрать результат.

О чём помнить

  • Безопасность. Агент запускает ocrmypdf в терминале сам (exec). Программа читает те PDF, которые агент ей передал (read), и записывает новый файл по пути, который задаёт агент, в любую папку, куда у пользователя есть право записи (write). Сохранять результат рядом с исходником под новым именем - правило для агента, сама программа такого ограничения не ставит. Ключей и входа в аккаунты OCRmyPDF не просит.
  • Команды brew, apt и uv без номера версии ставят ту, что сейчас в их каталоге. Мы проверили 17.13.0, а в Ubuntu 24.04 apt ставит 15.2.0. Что встало у тебя, покажет ocrmypdf --version.
  • В распознанном тексте бывают ошибки. В нашем прогоне на смеси русского и английского английское слово on пришло русскими буквами («оп»): на вид то же, но поиск по нему не найдёт. Суммы, номера и даты сверяй со сканом.
  • Русский язык нужно поставить отдельно: в Ubuntu пакет tesseract-ocr-rus, в Homebrew brew install tesseract-lang. Какие языки есть, покажет tesseract --list-langs. Документация предупреждает, что сам OCRmyPDF несёт только латинский шрифт, остальные берёт из системы, поэтому в прогоне мы поставили fonts-noto-core.
  • Файл может вырасти. В прогоне скан из двух страниц вырос с 257 КБ до 832 КБ, в 3,23 раза. Программа сама назвала причины: ключ --deskew перекодирует картинки, нет кодировщика jbig2, включено преобразование в PDF/A. Если размер важен, убери --deskew и поставь jbig2 (apt install jbig2 в Ubuntu 24.04 и новее).
  • Если в PDF уже есть текст, OCRmyPDF останавливается с кодом 6, в нашем прогоне на первой же странице с текстом. --skip-text пропускает такие страницы, --redo-ocr заменяет старый слой распознавания, а --force-ocr по документации переводит в картинку всё содержимое страниц и распознаёт его заново.
  • Зашифрованные PDF программа не читает и выходит с кодом 8. Документация советует сначала снять шифрование другой программой, например qpdf.

Частые проблемы

PriorOcrFoundError: page 1 already has text! - aborting, код выхода 6

В PDF уже есть текст: файл распознавали раньше или он не скан. Так вышло у нас при повторном запуске на готовом файле. Добавь --skip-text: программа распознает только страницы без текста и пропустит те, где он уже есть. Чтобы заменить старый слой распознавания, есть --redo-ocr.

The output file size is 3.23× larger than the input file. и строка The optional dependency 'jbig2' was not found

Так OCRmyPDF объяснил рост файла в нашем прогоне: ключ --deskew перекодировал картинки страниц, кодировщика jbig2 нет, включено преобразование в PDF/A. Не используй --deskew, если страницы ровные, поставь jbig2 (в Ubuntu 24.04 и новее apt install jbig2). Если архивный формат не нужен, документация предлагает --output-type pdf.

После uv tool install ocrmypdf команда ocrmypdf не находится или ocrmypdf --version показывает старую версию

uv кладёт команду в ~/.local/bin, а этой папки ещё нет в PATH. Если стоит и пакет apt, в системе две копии: в нашем прогоне which -a ocrmypdf показал ~/.local/bin/ocrmypdf и /usr/bin/ocrmypdf версии 15.2.0, и работает та, что раньше в PATH. Посмотри which -a ocrmypdf. Открой новое окно терминала или запусти uv tool update-shell, как советует документация, либо вызывай ~/.local/bin/ocrmypdf полным путём. Правку PATH агент делает только с твоего «да».

Проверка

✓ Проверено 07.10.2026: Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере: пакет ocrmypdf 15.2.0 из apt ради Tesseract 5.3.4 и Ghostscript 10.02.1, поверх него OCRmyPDF 17.13.0 через uv 0.12.23.

Когда
07.10.2026
Среда
Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере: пакет ocrmypdf 15.2.0 из apt ради Tesseract 5.3.4 и Ghostscript 10.02.1, поверх него OCRmyPDF 17.13.0 через uv 0.12.23
Объём
Установили и прогнали задачу на тестовых данных
Что именно сделали
  1. Одноразовый контейнер Ubuntu 24.04.5 без данных и ключей. Установка по документации OCRmyPDF для Debian и Ubuntu: apt-get update и apt-get install ocrmypdf, потом uv tool install ocrmypdf==17.13.0. Всё вместе заняло 96 секунд, apt поставил 166 пакетов, окружение uv заняло 129 МБ.
  2. ocrmypdf --version вывел 17.13.0. which -a ocrmypdf показал две копии: новую в ~/.local/bin и старую 15.2.0 из пакета Ubuntu в /usr/bin.
  3. Для русского языка поставили tesseract-ocr-rus и шрифт fonts-noto-core. tesseract --list-langs показал eng, osd и rus.
  4. Скрипт прогона сам сделал тестовый скан: две страницы A4 картинками в 300 точек на дюйм, чуть повёрнутые, размытые и с шумом, на первой странице строки на русском, на второй на английском. Текста в таком PDF нет, проверка нашла 0 знаков.
  5. ocrmypdf -l rus+eng --rotate-pages --deskew распознал файл двумя параллельными процессами за 14 секунд. В новом PDF нашлись все восемь контрольных строк, например «Акт сверки», «Итого к оплате», «Invoice», «Delivery address». Слово on в строке на английском пришло русскими буквами «оп».
  6. В результате 2 страницы, формат PDF/A-2b, это прочитала библиотека pikepdf. Файл вырос с 257 КБ до 832 КБ, и программа сама назвала причины: --deskew, нет jbig2, преобразование в PDF/A.
  7. Повторный запуск на уже распознанном файле остановился с ошибкой PriorOcrFoundError и кодом 6. С --skip-text тот же запуск прошёл и пропустил обе страницы.
  8. Каждый результат скрипт сверил сам и только после этого напечатал TASK_OK.
  9. Сетевые соединения записаны по этапам. apt ходил к адресам archive.ubuntu.com и security.ubuntu.com, а ещё к deb.nodesource.com: этот источник Node.js уже был прописан в образе песочницы, к OCRmyPDF он отношения не имеет. uv ходил к адресам Fastly, на которые указывают pypi.org и files.pythonhosted.org. Во время распознавания программа не открыла ни одного соединения.
  10. uv tool uninstall ocrmypdf убрал команду из ~/.local/bin, apt-get remove ocrmypdf убрал пакет Ubuntu. Контейнер удалён.
ДатаВерсияОбъёмГдеИтог
07.10.202617.13.0задачаконтейнер, Linuxполучилось
07.10.202617.13.0задачаконтейнер, Linuxполучилось

«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.

Похожие программы

Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.