Перейти к содержимому
pdftools.kz

Сжатие с потерями и без потерь

Сжатие без потерь упаковывает данные так, что исходные байты восстанавливаются до последнего: так работают архиваторы, PNG и внутренние потоки PDF. Сжатие с потерями выбрасывает часть информации ради размера, и вернуть её невозможно: так работают JPEG и WebP. В одном PDF обычно живут оба способа сразу — текст и векторная графика упакованы без потерь, а фотографии внутри уже пожаты с потерями.

Локально в браузеребез регистрации

Коротко о цифрах

Без потерь
байты восстанавливаются точно; выигрыш обычно проценты, а не разы
С потерями
JPEG и WebP; выброшенное не возвращается никаким пересохранением
Сжатие PDF
с потерями: перерисовка страниц и JPEG с качеством 0,30–0,95
Оптимизация PDF
без потерь: содержимое страниц не меняется вообще
Защита от роста
если результат не меньше исходника, отдаётся исходный файл

Где проходит граница

  • Без потерь: универсальная упаковка потоков, факсимильное кодирование чёрно-белых сканов, упаковка изображений PNG. Распаковка даёт исходные данные бит в бит.
  • С потерями: JPEG и WebP. Данные упрощаются с оглядкой на особенности зрения, и обратно они не собираются.
  • Текст и векторные объекты в PDF всегда упакованы без потерь — иначе буквы разъезжались бы прямо в файле.
  • Испортить текст сжатием можно только одним путём: сначала превратить страницу в картинку, а картинку пожать с потерями.

Два наших инструмента — две стратегии

  • Сжатие PDF работает с потерями: страницы перерисовываются при выбранном разрешении и кодируются в JPEG с качеством от 0,30 до 0,95. Выигрыш кратный, цена — потеря текстового слоя.
  • Оптимизация работает без потерь: qpdf перекладывает объекты и не трогает содержимое страниц. Текст, ссылки и шрифты остаются, выигрыш скромный.
  • Сжатие изображений умеет писать только JPEG и WebP: PNG в этом списке нет намеренно, потому что упаковывать без потерь то, что уже упаковано без потерь, бессмысленно.
  • Если результат оказался не меньше исходника, возвращается исходный файл: у сканов, уже пожатых факсимильным кодированием, перекодирование в JPEG даёт рост, а не экономию.

Как выбрать под задачу

  • Нужен поиск по тексту и живые ссылки — только сжатие без потерь, то есть оптимизация структуры.
  • Нужен жёсткий лимит по размеру для загрузки в форму — сжатие с потерями, других вариантов обычно нет.
  • Исходник — скан, текстового слоя всё равно нет: смело берите вариант с потерями, терять нечего.
  • Документ идёт в печать или в архив: оставьте его без перерисовки, потерянные детали оттуда уже не вернуть.

Частые вопросы

Можно ли сильно сжать PDF без потерь?

Обычно нет. Потоки в файле уже упакованы, и переупаковка даёт единицы процентов. Кратное уменьшение почти всегда означает перерисовку страниц в изображения, то есть сжатие с потерями.

Почему PNG нельзя сжать вашим инструментом?

Потому что PNG уже упакован без потерь, и повторная упаковка ничего не даст. Инструмент пишет JPEG или WebP: перевод в формат с потерями — единственный способ заметно уменьшить такую картинку.

Почему повторное сжатие того же файла почти не помогает?

Данные, которые можно было выбросить, выброшены на первом проходе. Второй проход добавит новых искажений поверх старых, а размер изменится незначительно — это худший из возможных обменов.

Что выбрать, если файл нужен и лёгкий, и с текстом?

Сначала попробуйте оптимизацию структуры и удаление лишних страниц. Если лимит всё равно не берётся, придётся жертвовать текстовым слоем — сохраните исходник, чтобы вернуться к нему позже.

Рядом