Из пачки сканов в текст: сначала OCR, затем сжатие сохраняемого PDF
Пачке сканов нужны два шага: OCR в PDF123 возвращает текст Markdown, а Compress уменьшает исходный PDF пережатием потоков. Порядок и выводы различаются.

«Пачка сканов» — это обычно стопка изображений страниц, сшитая в один PDF: тяжёлая на диске, пустая для поиска и копирования. Два инструмента, которые люди соединяют в цепочку, на этом сайте не дают один волшебный PDF с поиском. OCR возвращает Markdown. Сжатие перезаписывает PDF, который вы всё равно сохраняете.
Это разделение и есть весь рабочий процесс.
Что OCR здесь на самом деле даёт
POST /api/v1/misc/ocr-pdf запускает распознавание и скачивает файл .md (text/markdown): собственный текст PDF, объединённый с OCR со страниц-изображений. Он не записывает скрытый текстовый слой обратно в PDF. Если вы ожидали выделения и поиска внутри того же файла, это другая форма продукта (классический вывод в стиле OCRmyPDF). Этот эндпоинт — для текста, который может прочитать агент или конвейер.
Auto и Force OCR:
- Всё, кроме
ocrType=force-ocr(включая подпись «Normal» в портале), отображается на Auto: использовать существующий текст там, где он есть; распознавать страницы только с изображениями. force-ocrперечитывает каждую страницу, включая страницы, где текстовый слой уже есть.
В форме портала нет выбора языка. Оставшиеся поля в стиле tessdata от старых путей (languages, выравнивание перекоса, флаги очистки и подобные) игнорируются Rust-путём ocr_pdf. Режимы Auto и Force и причины сбоев распознавания на плохих сканах разобраны в статье Как OCR читает сканированный PDF.
OCR не уменьшает PDF. Скачанный Markdown — второй артефакт рядом с исходной пачкой сканов.
Где место сжатию
Сжатие (POST /api/v1/misc/compress-pdf) запускает потоковое сжатие qpdf: --compress-streams=y, пережатие flate и сгенерированные объектные потоки. Оно не изобретает текстовый слой, не подрезает шрифты и не обещает фотографического прореживания. На файле с множеством сканов оно всё же может уменьшить хранилище, плотнее упаковав потоки; на уже плотном файле выигрыш может быть небольшим. Фон о рычагах потоков и изображений: Что на самом деле происходит при сжатии PDF.
Используйте Compress для PDF, который будете архивировать или отправлять. Используйте вывод OCR в Markdown, когда нужны слова. Сжатие первым не делает OCR точнее; OCR первым не делает PDF меньше.
Практический порядок
- Если просмотрщик не открывает пачку, сначала Repair или Get Info.
- Распознайте пачку сканов в Markdown и выборочно проверьте несколько страниц текста.
- Отдельно сожмите копию PDF, если размер остаётся проблемой.
- Сохраняйте нетронутый оригинал, когда этого требует политика.
Шифрование файла всё ещё требует авторизованного Unlock до любого из шагов. Секретам нужны Sanitize / Auto Redact, а не OCR. Экспорт таблиц, возвращающий 204 после скана, означает, что текстовых колонок не найдено: сначала OCR в Markdown, затем решайте, применим ли вообще табличный инструмент (Пустой экспорт таблиц (204)).
За какими выводами следить
После типичного запуска у вас может быть три артефакта: исходная пачка сканов, скачанный .md из OCR и (необязательно) сжатая копия PDF. Подписывайте их. Отправить почтой только Markdown — потерять изображения страниц; отправить только сжатый PDF — всё равно не получить слой выделения и поиска из этого пути OCR. Конвейерам, которым нужны и слова, и PDF поменьше, придётся хранить оба вывода или позже перезапустить одну из сторон.
Force OCR на цифровой пачке со сломанным текстовым слоем всё ещё может быть полезен; Auto на чистой цифровой пачке может вообще пропустить среду OCR. Ни один режим не записывает текст обратно в PDF.
Чем этот процесс не является
Пачки сканов терпят неудачу, когда команды предполагают, что одна кнопка и извлекает текст, и уменьшает пиксели, как это мог бы делать настольный конвейер OCRmyPDF. Здесь текст уходит как Markdown; PDF остаётся PDF, если вы не сожмёте его намеренно. На этом сайте нет шага, который одним вызовом вернул бы «тот же PDF, теперь с поиском и меньше».
Об HTTP-автоматизации тех же операций см. Разработчикам.