Сжатие убирает избыточность, а не содержимое

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

А удалить содержимое он не может. Если каждая страница — это отсканированная фотография в 600 dpi, единственный способ уменьшить файл — выбросить пиксели, а это решение о качестве, а не оптимизация.

Три случая, когда файл увеличивается

Результат больше исходного почти всегда означает один из вариантов:

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

Что делать вместо этого

Полезный вопрос — не «как это сжать», а «что занимает место». Два факта помогут сузить круг поиска, прежде чем вы измените настройку:

  • Попробуйте выделить текст на странице. Если это получается, в файле есть текстовый слой, и его вес приходится на шрифты и изображения, а не на сканы страниц.
  • Сравните размер файла с количеством страниц. Текстовый документ обычно занимает десятки килобайт на страницу; скан — сотни килобайт или несколько мегабайт на страницу.
  • Если это скан, снизьте разрешение и преобразуйте в оттенки серого, если содержимое позволяет. Именно там и находятся мегабайты.
  • Если файл уже небольшой на страницу, оставьте его как есть. Повторное сжатие текстового PDF размером 300 KB редко даёт меньше 250 KB, а часто в результате получается больше.

Замечание о «сжатии до целевого размера»

Некоторые инструменты предлагают целевой размер — «сделать этот файл 2 MB». Это другая операция: инструмент снижает разрешение и качество изображений, пока расчётный размер не уложится, и будет продолжать, пока файл не поместится, даже если страницы станут нечитаемыми. Если у формы есть жёсткий лимит на загрузку, это работает; если вы просто хотите файл поменьше, безопаснее выбрать фиксированную настройку качества.