OCRmyPDF: подробный обзор распознавания сканов и PDF/A

OCRmyPDF добавляет к сканированному PDF распознанный текстовый слой и сохраняет результат в PDF или PDF/A. Это не визуальный редактор и не просмотрщик: основной интерфейс — командная строка, а результат проверяется в отдельном PDF-просмотрщике. На 14 сентября 2026 года актуальный официальный релиз — 17.11.0 от 28 августа 2026 года.

ПараметрАктуальное состояние
ТипCLI-приложение и Python-библиотека для OCR существующих PDF и одиночных изображений
РазработчикJames R. Barlow и участники проекта OCRmyPDF
Актуальная версия17.11.0 от 28 августа 2026 года
ЛицензияMozilla Public License 2.0; отдельные вспомогательные компоненты могут иметь иные лицензии
ПлатформыLinux, macOS, 64-битная Windows, WSL, Cygwin64, FreeBSD, Docker
OCR-движок по умолчаниюTesseract; языки задаются установленными пакетами traineddata
Основной входPDF; для удобства допускается одиночное изображение
Основной выходPDF или PDF/A; возможен отдельный текстовый sidecar-файл
РегистрацияНе требуется для локальной работы
ЦенаБесплатно; платной редакции самого OCRmyPDF нет
ОблакоНе требуется: штатный сценарий выполняется локально

Скачать OCRmyPDF

Бесплатно
В реестре российского ПО
Чистая установка

Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.

⬇ Скачать PDF Commander бесплатно

⬇ Скачать OCRmyPDF

Безопасный путь получения OCRmyPDF зависит от системы. Проект публикует исходный архив и универсальный Python wheel в PyPI, а документация рекомендует использовать системный пакетный менеджер либо современный Python-менеджер пакетов. На дату обзора PyPI помечает 17.11.0 как последний официальный релиз. Важно не ориентироваться только на номер в документации ветки разработки: в примечаниях к релизам прямо сказано, что будущая версия может быть описана заранее и считается официальной лишь после создания тега и публикации на PyPI.

Для Debian и Ubuntu документирован пакет ocrmypdf через APT, для Fedora — пакет OCRmyPDF вместе с tesseract-osd, для macOS и Linux доступен Homebrew, для macOS также MacPorts, для FreeBSD — системный порт, а для изолированного развёртывания есть Docker-образы. Репозитории дистрибутивов иногда отстают от PyPI, поэтому перед выбором способа установки полезно решить, что важнее: максимально свежая версия или обновления, управляемые ОС.

В Windows нет одного официального установщика, который включал бы всё необходимое. Нативная схема требует 64-битных Python, Tesseract и Ghostscript, после чего OCRmyPDF устанавливается как Python-пакет. Документация также поддерживает WSL, Cygwin64 и Docker. Загрузка случайного EXE с каталогов программ для Windows не нужна и создаёт лишний риск: у проекта нет отдельной «OCRmyPDF Desktop» с фирменным графическим установщиком.

Что такое OCRmyPDF

OCRmyPDF — открытое Python-приложение и библиотека, автором которого в метаданных пакета указан James R. Barlow. Проект размещён в организации OCRmyPDF на GitHub и имеет статус Production/Stable в PyPI. Его назначение — добавить распознанный текст к отсканированным PDF, чтобы по документам можно было искать, выделять и копировать текст. Внутри он использует OCR-движок Tesseract, а для разбора, растрирования, создания текстового слоя, оптимизации и PDF/A задействует набор специализированных зависимостей.

Принципиальное отличие от полноценного редактора — OCRmyPDF не предлагает визуально править абзацы, таблицы и объекты PDF. Он автоматизирует обработку уже существующего документа: анализирует страницы, при необходимости растрирует их для OCR, создаёт текстовый слой и собирает новый PDF. Поэтому продукт особенно уместен в архивных и серверных процессах, где одни и те же правила нужно применять к большому числу файлов.

OCRmyPDF также не следует путать с самим Tesseract. Tesseract — движок распознавания, способный работать с изображениями и выдавать текст, hOCR, TSV или searchable PDF. OCRmyPDF строит над ним PDF-ориентированный конвейер: умеет разбираться с уже существующим PDF, смешанными текстовыми и сканированными страницами, PDF/A, поворотом, очисткой, оптимизацией, плагинами и автоматизацией.

Основные функции OCRmyPDF

Добавление поискового текстового слоя

Базовый вызов ocrmypdf input.pdf output.pdf запускает анализ документа, OCR и сборку результата. В обычном скане визуально остаётся изображение страницы, а поверх него добавляется невидимый текст, согласованный с распознанными словами. После этого файл становится пригоден для поиска и копирования текста в совместимом PDF-просмотрщике. OCR не превращает страницу в редактируемый текстовый документ уровня DOCX: это по-прежнему PDF с изображением и текстовым слоем.

Обработка страниц с уже существующим текстом

В версии 17 режимы обработки унифицированы параметром —mode. Режим default останавливается, если обнаружен существующий текст; skip пропускает такие страницы; redo удаляет старый невидимый OCR-слой и распознаёт его заново, не затрагивая обычный печатный векторный текст; force принудительно растрирует содержимое и выполняет OCR. Старые параметры —skip-text, —redo-ocr и —force-ocr сохранены как совместимые псевдонимы.

Для смешанного сборника обычно подходит —mode skip, для замены старого скрытого OCR — —mode redo. force нужен только осознанно: он растрирует векторное содержимое.

Языки и многоязычные документы

Языки распознавания определяются пакетами Tesseract. По умолчанию OCRmyPDF предполагает английский, если не указано иное. Для русского нужен соответствующий traineddata-пакет и параметр -l rus, а для смешанного русского и английского — -l rus+eng. Tesseract не определяет неизвестный язык автоматически, поэтому корректный список языков — одна из основных настроек качества. Можно подключать и собственные обученные языковые данные Tesseract.

Поворот, выравнивание и очистка

OCRmyPDF умеет исправлять ориентацию страниц, выравнивать перекошенные сканы и выполнять предварительную очистку. Параметры —rotate-pages и —deskew полезны для документов, полученных с планшетного сканера или камеры. Опции —clean и —clean-final зависят от внешней программы unpaper. Очистка может требовать заметного временного дискового пространства, потому что unpaper использует несжатые промежуточные изображения.

Здесь важно различать улучшение картинки для OCR и изменение финальной страницы. Предобработка способна повысить устойчивость распознавания, но агрессивные фильтры потенциально меняют геометрию или детали изображения. Для юридически и архивно значимых сканов исходник следует хранить отдельно, а обработанный файл проверять визуально.

PDF/A и обычный PDF

В OCRmyPDF 17 значение —output-type auto используется по умолчанию. Программа старается выпустить PDF/A: сначала возможна быстрая «спекулятивная» конверсия с добавлением нужных профилей и метаданных и валидацией через veraPDF; если это не удаётся, применяется Ghostscript, когда он доступен. Если безопасно получить PDF/A нельзя, режим auto способен вернуть обычный PDF вместо повреждения документа. Явно можно запросить PDF/A-1b, PDF/A-2b, PDF/A-3b или стандартный PDF.

Для PDF с невстроенными CID-шрифтами auto предпочитает обычный PDF потенциально испорченному PDF/A. Если архивный стандарт обязателен, результат нужно валидировать и проверять поиск.

Оптимизация размера

Уровень -O1 включает оптимизацию изображений. jbig2enc улучшает lossless-сжатие монохромных страниц; рискованный lossy JBIG2 удалён в версии 17. pngquant применяется в более агрессивных режимах. При PDF/A Ghostscript может перекодировать изображения, поэтому уменьшение файла не равно побитовой сохранности.

Текстовый sidecar и работа без PDF-выхода

Параметр —sidecar output.txt создаёт рядом с PDF текстовый файл с результатом OCR. Он удобен для индексации, поиска и последующей обработки. Однако sidecar содержит именно текст, распознанный OCRmyPDF: исходный текст со страниц, которые уже были текстовыми и поэтому не распознавались, туда не добавляется. Если требуется извлечь вообще весь текст готового PDF, нужен отдельный PDF-to-text инструмент.

Python API, плагины и автоматизация

Помимо командной строки доступен Python API, позволяющий запускать OCR как часть приложения. Плагинная архитектура даёт возможность заменять или расширять отдельные этапы. Для папок со сканами проект поставляет вспомогательный watcher-сценарий; для массовой обработки документация также показывает применение GNU Parallel. Эти возможности превращают OCRmyPDF из разовой утилиты в строительный блок документного конвейера.

Интерфейс и удобство использования

У OCRmyPDF нет классического окна с предпросмотром страниц, панелью миниатюр и кнопкой «Распознать». Рабочая зона — терминал или оболочка, откуда задаются входной и выходной файл и параметры. Это снижает удобство для человека, который ожидает визуальный OCR-редактор, но делает поведение воспроизводимым: удачную команду можно сохранить в сценарии и применить к сотням документов без ручных кликов.

Логика команд последовательна: сначала режим обработки, затем параметры языка и предобработки, потом вход и выход. Встроенная справка доступна командой ocrmypdf —help. Порог освоения выше, чем у GUI-приложений, потому что пользователю нужно понимать пути к файлам, кавычки, пакетные менеджеры и смысл параметров PDF/A. Зато после настройки повседневная операция часто сводится к одной команде.

Интерфейс команд и имена параметров англоязычные; отдельной русской графической локализации у проекта нет. Для визуальной проверки результата нужен внешний просмотрщик. Например, Sumatra PDF удобно использовать как лёгкий этап контроля на Windows: открыть итоговый файл, найти несколько распознанных слов, проверить страницы и копирование текста. Сам Sumatra PDF OCR не выполняет.

Поддерживаемые форматы и совместимость

Главный входной формат — PDF. OCRmyPDF ориентирован именно на сохранение сканированных документов в PDF с текстовым слоем, а не на универсальное преобразование офисных файлов. Для удобства программа умеет принять одиночное изображение и создать из него PDF; если DPI изображения отсутствует или указан неправильно, его можно задать через —image-dpi. Для серии изображений официальная документация рекомендует предварительно собрать PDF с помощью img2pdf либо работать непосредственно с Tesseract.

В актуальных зависимостях присутствует pi-heif, поэтому сборка может поддерживать HEIF/HEIC как изображение-вход; при отсутствии этой библиотеки функциональность деградирует именно на этом сценарии. Для большинства задач безопаснее считать PDF основным договорным форматом, а изображения — вспомогательным входом, возможности которого зависят от декодеров.

На выходе доступны обычный PDF, PDF/A-1b, PDF/A-2b, PDF/A-3b и режим auto. Можно дополнительно получить текстовый файл OCR через sidecar, но OCRmyPDF не экспортирует документ в DOCX/XLSX и не является инструментом реконструкции сложной верстки в офисных форматах.

Для PDF/A современная ветка может использовать pypdfium2 для растрирования, veraPDF для валидации и Ghostscript для конверсии. При обычном PDF часть ограничений PDF/A исчезает: например, стандартный PDF допускает шифрование, тогда как PDF/A по своему назначению не должен быть зашифрован.

Производительность и стабильность

Скорость зависит прежде всего от количества страниц, разрешения изображений, выбранной предобработки и числа параллельных заданий. В документации отдельно отмечено, что новые версии могут работать медленнее очень старых веток из-за включённой постобработки и оптимизации. Если приоритетом является время, разработчики рекомендуют отключить оптимизацию через —optimize 0, выбрать обычный PDF вместо PDF/A и не применять без необходимости force-OCR и тяжёлую предобработку.

Память определяется не столько размером PDF на диске, сколько числом пикселей самой крупной страницы. Официальная оценка — около 15 байт на пиксель на одно одновременно обрабатываемое задание. Для страницы примерно 34 мегапикселя это порядка 500 МБ при одном job и около 2 ГБ при четырёх. Значит, многопоточная обработка высокодетализированных сканов способна быстро исчерпать RAM даже у сравнительно небольшого по мегабайтам файла.

В 17.11.0 добавлен параметр —max-ocr-image-mpixels, который уменьшает только изображение, передаваемое OCR-движку, если страница превышает заданный предел. Видимая страница результата не понижается в разрешении, но на очень мелком шрифте возможно снижение точности OCR. Это управляемый компромисс между памятью и распознаванием.

Для пакетной обработки важно не складывать неконтролируемо параллелизм двух уровней. И GNU Parallel, и OCRmyPDF стремятся использовать процессоры, поэтому официальная документация советует ограничивать число внешних параллельных задач. В API несколько OCR-задач теперь могут выполняться одновременно, но настройки плагинов и глобальные ограничения изображения накладывают дополнительные условия на многопоточность.

Лицензирование и версии

Основной код OCRmyPDF распространяется по Mozilla Public License 2.0. Лицензия разрешает использование, в том числе интеграцию в коммерческие и закрытые решения, при соблюдении требований MPL к изменениям файлов самого OCRmyPDF. Документация, тестовые и вспомогательные компоненты могут иметь отдельные лицензии, поэтому при встраивании в продукт нужно смотреть SPDX-метки конкретных файлов и лицензии внешних зависимостей.

Платной редакции, подписки, ограничения по количеству страниц, водяных знаков и пробного периода у OCRmyPDF нет. Аккаунт разработчика для локального запуска не требуется. Финансовые затраты могут возникнуть только вокруг инфраструктуры: сервер, облачная VM, коммерческая поддержка, корпоративное сопровождение или лицензирование сторонних компонентов собственного решения.

Версия 17 — не отдельная коммерческая редакция, а текущая мажорная ветка проекта. На 14 сентября 2026 года официально опубликована 17.11.0. Записи о следующих номерах в ветке документации нельзя автоматически считать выпущенным ПО; официальный реестр релизов — публикации PyPI и соответствующие теги проекта.

Системные требования

Базовые зависимости

Для актуальной ветки требуется Python 3.11 или новее; документация рекомендует 3.12+. Нужен Tesseract 4.1.1 или новее. Для растрирования требуется либо Ghostscript 9.54+, либо pypdfium2; для PDF/A — Ghostscript 9.54+ либо связка с veraPDF. fpdf2 2.8+ и uharfbuzz отвечают за создание и формирование текстового слоя. Для нелатинских письменностей рекомендуются полноценные Noto-шрифты или эквивалент.

Опциональные зависимости: jbig2enc 0.29+ для монохромного сжатия, pngquant 2.5+ для оптимизации и unpaper 6.1 для очистки. Одного pip install ocrmypdf недостаточно: часть системных программ pip не устанавливает.

Linux и FreeBSD

На Debian и Ubuntu 22.04+ доступна установка из APT, на Fedora — из DNF, на Alpine — APK, на FreeBSD — pkg. Есть также Homebrew для Linux. Версии в репозиториях ОС могут быть старше, чем в PyPI, зато зависимости обычно согласованы с системой. 32-битные платформы официально не поддерживаются и не тестируются, даже если отдельные Linux-сборки потенциально запускаются.

macOS

Для macOS наиболее прямой документированный путь — Homebrew: он устанавливает OCRmyPDF, Tesseract, Ghostscript и обязательные зависимости. Английские данные распознавания входят в базовый сценарий, дополнительные языки ставятся отдельно. Альтернативой служит MacPorts. Для сложных письменностей стоит установить соответствующие семейства Noto, иначе текстовый слой может оставаться поисковым, но отображение выделенного текста и символов будет хуже.

Windows

Поддерживается только 64-битная Windows. Для нативной установки документация требует 64-битные Python, Tesseract и Ghostscript, после чего пакет ставится через pip. Параллельно доступны WSL, Cygwin64 и Docker. Нативная схема сложнее Linux/macOS из-за раздельной установки внешних компонентов; OCRmyPDF ищет Tesseract и Ghostscript в стандартных местах и реестре Windows.

Преимущества и недостатки OCRmyPDF

Плюсы и минусы

• Открытый исходный код и отсутствие платной редакции, лимитов страниц и обязательной регистрации.

• Локальная обработка без обязательной отправки документов в облако.

• Сильная специализация на существующих PDF: поисковый слой, смешанные документы, повторный OCR и сохранение в PDF/A.

• Многоязычность через экосистему Tesseract, включая одновременное указание нескольких языков.

• Пакетная автоматизация, Python API, плагины, Docker и watcher-сценарий.

• Контролируемые режимы работы с уже существующим текстом: skip, redo и force.

• Подробная документация по безопасности, памяти, PDF/A и зависимости результата от внешних компонентов.

Минусы

• Нет штатного графического интерфейса и интерактивного исправления ошибок распознавания.

• Установка на Windows заметно сложнее обычного EXE-приложения.

• Качество OCR зависит от Tesseract, выбранных языков, качества скана и установленных traineddata.

• Высокое разрешение и параллельность могут потребовать гигабайты RAM.

• PDF/A-конверсия через Ghostscript способна перекодировать изображения, удалить часть нестандартных XMP-метаданных или деактивировать активное содержимое.

• Не предназначен для DOCX/XLSX-экспорта, визуального редактирования PDF и ручной коррекции структуры документа.

• Не является средством обезвреживания вредоносных PDF и не должен запускаться на недоверенных файлах без изоляции.

Сравнение с аналогами

ПродуктОсновная рольOCRGUIАвтоматизацияМодель
OCRmyPDFДобавление OCR-слоя и подготовка PDF/PDF-AДа, через TesseractНет, CLIВысокая: CLI, API, плагиныБесплатный open source
ABBYY FineReader PDFOCR и визуальная работа с PDFДаДаЗависит от редакции и платформыКоммерческая подписка
Adobe Acrobat ProПолноценная работа с PDF, сканирование и OCRДаДаЕсть пакетные инструментыКоммерческая подписка
TesseractOCR-движок для изображенийЭто и есть OCR-движокНет штатного GUIВысокая, CLI/APIOpen source
Sumatra PDFБыстрый просмотр документовНетДаОграничена задачами просмотраБесплатный open source

ABBYY FineReader ближе к пользователю, которому нужен визуальный контроль распознавания, конвертация в редактируемые форматы и ручная работа с PDF. Его цена и лицензионная модель противоположны OCRmyPDF, зато порог входа ниже. На macOS и Windows FineReader существуют как разные продукты с различиями функций и лицензий.

Adobe Acrobat Pro сочетает сканирование, OCR, редактирование, формы, подписи и множество операций с PDF. Он удобнее, когда распознавание — лишь один этап интерактивной работы. OCRmyPDF предпочтительнее в сценарии «получить каталог сканов и автоматически сделать его поисковым», особенно на сервере.

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

С CuneiForm OCRmyPDF объединяет принадлежность к классу OCR-инструментов, но современный OCRmyPDF лучше вписывается в автоматизированные PDF-конвейеры и поддерживается активной веткой релизов. Для пользователя, которому важен GUI, логичнее смотреть не на старые OCR-движки, а на современные визуальные пакеты.

Sumatra PDF не является конкурентом по функции OCR. Это просмотрщик для Windows, который открывает PDF и многие другие форматы. В связке роли не пересекаются: OCRmyPDF создаёт поисковый файл, Sumatra PDF быстро открывает его и позволяет проверить поиск. Если задача ограничена чтением уже поискового PDF, OCRmyPDF вообще не нужен. Для более развитого редактирования на Windows можно сравнить также PDF-XChange Editor, а для набора бесплатных PDF-операций — PDF24 Creator.

Инструкция по установке

Linux: системный пакет или свежая версия

• Проверьте, есть ли OCRmyPDF в репозитории системы. Для Debian/Ubuntu 22.04+ документирована команда apt install ocrmypdf, для Fedora — dnf install ocrmypdf tesseract-osd.

• После установки выполните ocrmypdf —version и сравните номер с требуемой вам веткой. Репозиторий ОС может отставать от PyPI.

• Установите нужные языковые пакеты Tesseract; для русского в Debian-подобных системах обычно нужен пакет русского traineddata.

• Сделайте первый прогон на копии небольшого скана командой ocrmypdf -l rus input.pdf output.pdf.

• Откройте output.pdf в просмотрщике и проверьте поиск по нескольким словам, выделение текста и визуальное соответствие страниц.

Если нужен релиз свежее системного, сначала установите системные зависимости, затем обновляйте Python-пакет через uv или pip.

macOS через Homebrew

• При установленном Homebrew выполните brew install ocrmypdf. Этот путь включает Tesseract, Ghostscript и обязательные зависимости.

• Для дополнительных языков установите соответствующие данные Tesseract; при необходимости всех пакетов документация предлагает brew install tesseract-lang.

• Проверьте ocrmypdf —help и ocrmypdf —version.

• Первый документ обработайте без агрессивной очистки, чтобы получить базовый результат и отделить качество OCR от влияния фильтров.

Windows 64-bit

• Установите 64-битный Python. Документация показывает Python 3.12 как рекомендуемый вариант.

• Установите 64-битный Tesseract; официальная инструкция приводит пакет UB-Mannheim через winget.

• Установите 64-битный Ghostscript вручную с сайта его разработчика, если используете нативную схему из документации.

• Установите OCRmyPDF командой py -m pip install ocrmypdf.

• Запускайте программу как py -m ocrmypdf, если обычная команда не попала в PATH.

• Проверьте русские языковые данные Tesseract и только затем запускайте рабочую папку.

WSL или Docker упрощают изоляцию зависимостей; на Windows и macOS Docker работает через виртуализацию и может быть медленнее нативного Linux.

Удаление и откат

Единой официальной инструкции удаления для всех платформ документация OCRmyPDF не публикует. Практически безопаснее удалять пакет тем же менеджером, которым он был установлен, и не стирать вручную каталоги Tesseract, Ghostscript или Python: они могут использоваться другими программами. Перед обновлением или удалением сохраняйте исходные сканы отдельно; выходные PDF независимы от установленного OCRmyPDF и продолжат открываться в обычных просмотрщиках.

Практические кейсы

Архив сканов на русском и английском

Цель: получить searchable PDF без отправки документов в облако. Подготовка: установить русские и английские traineddata Tesseract, сохранить исходник отдельно. Действия: запустить ocrmypdf -l rus+eng input.pdf output.pdf. При заметном перекосе добавить —deskew, а при неверной ориентации — —rotate-pages. Проверка: найти в просмотрщике по одному русскому и английскому слову на разных страницах, затем сравнить визуально несколько страниц. Ограничение: неправильный список языков ухудшает OCR, а Tesseract сам не определяет неизвестный язык документа.

Смешанный PDF: текстовые страницы и сканы

Цель: не растрировать качественный цифровой текст. Подготовка: убедиться, что часть страниц уже ищется. Действия: применить ocrmypdf —mode skip input.pdf output.pdf. OCR будет нужен только страницам без текста, а текстовые страницы должны пройти без повторного распознавания. Проверка: поиск по слову с цифровой страницы и по слову со скана. Ограничение: если существующий невидимый OCR-слой ошибочен, skip его сохранит; тогда нужен режим redo.

Замена неудачного старого OCR

Цель: пересоздать скрытый распознанный слой, не превращая обычный печатный текст в изображение. Подготовка: сделать копию исходного PDF и выяснить, что ошибки действительно находятся в невидимом OCR-слое. Действия: использовать ocrmypdf —mode redo -l rus input.pdf output.pdf. Проверка: повторить поиск проблемных слов и скопировать фрагмент текста в простой редактор. Ограничение: redo не предназначен для исправления видимого векторного текста, уже встроенного в PDF как обычные объекты.

Получение текста для индекса

Цель: текст для индекса. Действия: ocrmypdf —sidecar output.txt -l rus input.pdf output.pdf. Проверка: сравнить фразы в output.txt со сканом. Ограничение: sidecar не включает текст страниц, которые OCRmyPDF не распознавал.

Пакетная обработка каталога

Цель: пакетный OCR каталога. Подготовка: отдельная выходная папка и проба на нескольких файлах. Действия: GNU Parallel или watcher с ограничением параллелизма. Проверка: коды завершения, журналы и выборочный просмотр. Ограничение: много процессов вместе с высоким —jobs быстро расходуют RAM.

Навигатор по сбоям

• «Page already has text». Сначала выясните, полезен ли существующий слой. Для смешанного документа применяйте skip, для замены старого OCR — redo, для сознательной полной растризации — force.

• «Input file is not a valid PDF». Проверьте, завершено ли копирование и открывается ли файл в другом средстве. OCRmyPDF уже пытается исправлять часть синтаксических ошибок через pikepdf/QPDF, поэтому повторяющаяся ошибка часто указывает на повреждённый или обрезанный файл.

• Tesseract не видит hocr или txt config. Проверьте целостность каталога tessdata: одиночные traineddata, скачанные вручную, не заменяют полный комплект конфигурационных файлов Tesseract.

• Не хватает памяти. Уменьшите —jobs, затем при необходимости задайте —max-ocr-image-mpixels и перепроверьте качество мелкого шрифта.

• Выход неожиданно не PDF/A. В режиме auto это возможно, если безопасная PDF/A-конверсия недоступна. Проверьте наличие veraPDF/Ghostscript и предупреждения, а если стандарт обязателен — запросите конкретный pdfa-режим и валидируйте результат.

Карта критических зависимостей

ЗависимостьРольЕсли её нет
Tesseract и traineddataOCR и языкиРаспознавание или нужный язык недоступны
pypdfium2 либо GhostscriptРастрирование PDFНет полного конвейера обработки страниц
veraPDF либо GhostscriptПолучение/проверка PDF/Aauto может выпустить обычный PDF
fpdf2 и uharfbuzzТекстовый слойАктуальная установка неполна
Noto или аналогичные шрифтыГлифы разных письменностейПоиск может работать, но отображение выделения ухудшается
unpaper, jbig2enc, pngquantОчистка и дополнительная оптимизацияОсновной OCR остаётся доступен, но часть функций отсутствует

Интернет требуется главным образом для установки и обновлений; локальный OCR не зависит от облачного аккаунта. Отдельно стоит относиться к демонстрационной webservice-обвязке: документация прямо указывает, что в ней нет аутентификации, защиты от DoS и промышленной балансировки, поэтому это не готовый публичный сервис.

Паспорт обратимости операций

ОперацияЧто меняетсяПуть назад
Обычный OCRДобавляется поисковый слой; структура и сжатие PDF могут изменитьсяХранить исходный PDF
—mode skip/redoskip сохраняет существующий текст, redo заменяет старый невидимый OCRПовторить обработку с другого мастер-файла
—mode forceСтраница растрируется, векторное содержимое теряетсяТолько исходная копия
PDF/A через GhostscriptВозможны перекодирование изображений и удаление части активного содержимого/нестандартного XMPСравнить результат с оригиналом и хранить оба
—mode stripУдаляется невидимый OCR-текст, видимое содержимое сохраняетсяНовый OCR или исходная копия

Хотя OCRmyPDF умеет записывать результат поверх исходного имени только после успешной обработки, архивный процесс лучше строить с отдельным мастер-файлом. Тогда спорные параметры можно повторять без потери исходных пикселей и структуры.

Хронология развития и поддержки

OCRmyPDF развивается много лет: поверх исходной задачи добавления OCR-слоя появились аккуратная реконструкция страниц, PDF/A, оптимизация и расширенная интеграция Tesseract. В ветке 17 Ghostscript перестал быть строго обязательным для растрирования, pypdfium2 стал предпочтительным быстрым путём, а auto-режим PDF/A получил валидацию через veraPDF и безопасный переход к обычному PDF, если архивный вариант нельзя создать без риска.

В версии 17 унифицированы режимы force/skip/redo, удалён lossy JBIG2, а 17.11 добавила ограничение размера изображения именно для OCR, чтобы контролировать память без уменьшения видимой страницы. Релизы выходят регулярно, но номер из будущих release notes не равен опубликованной версии: проект сам предупреждает, что официальным релиз становится после тега и публикации на PyPI.

Часто задаваемые вопросы

OCRmyPDF бесплатно?

Да. Основной проект распространяется по MPL-2.0 и не имеет платной редакции, лимита страниц или обязательной подписки. Расходы возможны на собственную инфраструктуру или стороннее сопровождение.

Нужен ли интернет для распознавания?

Нет для штатного локального сценария. После установки OCRmyPDF, Tesseract, языковых данных и других нужных зависимостей обработка выполняется локально. Интернет потребуется для получения и обновления пакетов, если они не установлены из локального источника.

Можно ли распознавать русский язык?

Да, если установлен русский языковой пакет Tesseract и указан язык rus. Для двуязычного документа можно задать, например, rus+eng.

Почему OCRmyPDF говорит, что на странице уже есть текст?

Это защитное поведение режима по умолчанию. Программа не хочет без необходимости уничтожать или дублировать уже существующий текст. Выберите skip, redo или force после того, как определите, какой именно слой находится в файле.

Подходит ли OCRmyPDF для рукописей?

Это не специализированная HTR-система для рукописей. На рукописном материале качество нужно оценивать отдельно и при необходимости выбирать другой движок.

Можно ли обработать защищённый паролем PDF?

OCRmyPDF не предназначен для снятия паролей. Защиту нужно корректно снять другим инструментом при наличии законных прав и необходимых учётных данных, затем уже запускать OCR. Сертификатно зашифрованные PDF OCRmyPDF открыть не может.

Что будет с цифровой подписью?

Изменение PDF нарушает криптографическую подпись. OCRmyPDF обнаруживает подписанные документы и обычно отказывается их менять, если явно не разрешить инвалидировать подписи. Для подписанного юридически значимого файла разумнее сначала определить, допустимо ли вообще создавать модифицированную производную копию.

Безопасно ли обрабатывать неизвестные PDF?

Документация прямо предупреждает: OCRmyPDF не является защитой от вредоносных PDF. Недоверенные файлы лучше не открывать и не обрабатывать на рабочей системе; для риска из внешних источников следует использовать изолированный контейнер или виртуальную машину и ограниченные права.

Вывод

OCRmyPDF особенно хорошо подходит администраторам, архивистам, разработчикам и техническим пользователям, которым нужно превращать потоки сканированных PDF в поисковые документы локально и воспроизводимо. Его сильные стороны — автоматизация, открытая лицензия, работа с PDF/A, аккуратные режимы для смешанных документов и возможность встроить OCR в сценарии или Python-приложения.

Для домашнего пользователя без опыта терминала установка и подбор зависимостей могут оказаться сложнее, чем сам OCR. Если требуется визуальная правка результатов, экспорт в Word/Excel, ручное исправление распознавания или единый графический пакет для PDF, рациональнее выбрать ABBYY FineReader PDF, Adobe Acrobat Pro или другой GUI-редактор. Если нужно только открыть и читать готовые документы, достаточно лёгкого просмотрщика вроде Sumatra PDF. OCRmyPDF наиболее убедителен именно там, где задача сформулирована как повторяемый технический конвейер: получить скан, добавить корректный поисковый слой, при необходимости подготовить PDF/A и передать файл дальше без облачной зависимости.


Ваш адрес email не будет опубликован. Обязательные поля помечены *