Уменьшение веса сканированного PDF: быстрый рабочий алгоритм

Чтобы уменьшить размер отсканированного PDF без потери читаемости, почти всегда достаточно: убрать лишний цвет, привести разрешение к 300 dpi (или ниже), очистить фон/шум и затем корректно пересобрать PDF (с OCR — при необходимости).

Обычно «раздувает» файл сочетание цвет + 600 dpi + серый фон бумаги. Для текста чаще всего достаточно серого/ч/б режима и 300 dpi.

Оглавление

Понять, что внутри: текст или картинки

  1. Увеличьте страницу до 200–300%: если видны пиксели и «зерно», это растр (картинка).
  2. Попробуйте выделить текст: если не выделяется или выделяется «кашей», это скан-изображения.

Почему это важно: для сканов нужно управлять изображениями (DPI, режим, шум, алгоритм сжатия). Для «нормального» текстового PDF достаточно оптимизации при сохранении.

Если можно пересканировать: настройки, которые сразу экономят мегабайты

Самый «безболезненный» способ — пересканировать с правильными параметрами (результат обычно лучше, чем «лечить» тяжёлый файл).

Рекомендации для документов с текстом (договоры, заявления, лекции):

  • Режим: Grayscale (серый) или Ч/Б (битональный) — не цвет.
  • Разрешение: 300 dpi (для мелкого шрифта/печатей — 400 dpi, но не 600 «на всякий случай»).
  • Обработка: выравнивание (deskew), лёгкое удаление фона/шума, аккуратная резкость.
  • Сканирование по страницам: если в документе есть 1–2 страницы с цветными схемами/фото — сканируйте их отдельно в цвете, остальное в сером/ч/б.

Если документ читается с экрана, то снижение с 600 до 300 dpi обычно почти незаметно для глаз, но размер падает кратно.

Если пересканировать нельзя: сжатие и OCR офлайн

Надёжный порядок действий: сначала сделать копию → затем сжимать → потом проверять самые мелкие места (таблицы, реквизиты, подписи).

1) Пересборка PDF через Ghostscript (gs)

Подходит, когда нужно быстро уменьшить скан и не возиться с настройками по каждой картинке.

Команда с хорошим компромиссом качества:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
  -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Как выбирать пресет:

  • /ebook — чаще всего оптимален для чтения.
  • /printer — если после /ebook мелкий текст стал «мыльным».
  • /screen — максимально маленький файл, но риск потери чёткости выше.

2) OCRmyPDF: поиск по тексту + оптимизация

Если нужен поиск, копирование текста и более удобный архив, прогоните OCR с умеренной оптимизацией:

Безопасно по качеству:

ocrmypdf -O 1 --output-type pdf input.pdf output.pdf

Чуть сильнее (обычно всё ещё читаемо):

ocrmypdf -O 2 --output-type pdf input.pdf output.pdf

Агрессивные режимы и «сильные» методы для ч/б могут уменьшить размер очень заметно, но для документов с цифрами (суммы, ИНН, номера) обязательно делайте визуальную проверку ключевых строк.

Как быстро проверить, что читаемость не пострадала

  • Сравните исходник и результат на 100% и 200% масштабе.
  • Пройдитесь по: мелкому шрифту, таблицам, печатям, подписям, тонким линиям.
  • Если появились «ореолы» вокруг букв — попробуйте более мягкий пресет (например, /printer) или уменьшите степень оптимизации (-O 1).

Частые ошибки

  • Сканирование в цвете, хотя нужен серый/ч/б.
  • 600–1200 dpi без реальной необходимости.
  • Серый фон бумаги и шум (страница превращается в «фотографию», которую трудно сжать).
  • Сжатие «вслепую» без проверки мелкого текста и реквизитов.
  • Смешивание в одном режиме: весь документ в цвете из‑за пары цветных страниц.

FAQ

Какое DPI выбрать, чтобы текст не расплылся?
Обычно 300 dpi. Для очень мелкого шрифта и печатей — 400 dpi. Ниже 200 dpi имеет смысл только для простого текста и после проверки.

Можно ли уменьшить размер вообще без потерь?
Если исходник уже оптимален — почти нет. Но без потери читаемости (визуально) чаще всего можно, особенно когда исходник: цветной, с фоном, с завышенным DPI.

Что выбрать: Ghostscript или OCR?
Если нужен просто меньший файл — начните с Ghostscript /ebook. Если нужен поиск по документу — OCRmyPDF -O 1, затем при необходимости -O 2.