Сжатие убирает избыточность, а не содержимое
PDF хранит страницы как инструкции для отрисовки: текстовые фрагменты со своими шрифтами, изображения с заданным разрешением, векторные контуры и дерево структуры. Компрессор может устранить три вида избыточности — изображения, сохранённые с разрешением выше, чем при их отображении, шрифты, встроенные полностью, когда используется только часть глифов, и объекты, на которые после редактирования больше ничего не ссылается.
А удалить содержимое он не может. Если каждая страница — это отсканированная фотография в 600 dpi, единственный способ уменьшить файл — выбросить пиксели, а это решение о качестве, а не оптимизация.
Три случая, когда файл увеличивается
Результат больше исходного почти всегда означает один из вариантов:
- Файл уже был оптимизирован. Повторный проход по файлу, в котором шрифты уже разбиты на подмножества, а разрешение изображений снижено, может лишь перекодировать его, а перекодирование JPEG с похожим качеством увеличивает размер, не добавляя деталей.
- Исходный файл был сканом, сохранённым в JPEG, а компрессор преобразовал его в формат без потерь или переупаковал. Формат без потерь по определению больше.
- Документ был линеаризован, подписан или зашифрован на выходе. Потоки объектов, словарь подписи и инкрементальное обновление добавляют байты, не имеющие отношения к страницам.
Что делать вместо этого
Полезный вопрос — не «как это сжать», а «что занимает место». Два факта помогут сузить круг поиска, прежде чем вы измените настройку:
- Попробуйте выделить текст на странице. Если это получается, в файле есть текстовый слой, и его вес приходится на шрифты и изображения, а не на сканы страниц.
- Сравните размер файла с количеством страниц. Текстовый документ обычно занимает десятки килобайт на страницу; скан — сотни килобайт или несколько мегабайт на страницу.
- Если это скан, снизьте разрешение и преобразуйте в оттенки серого, если содержимое позволяет. Именно там и находятся мегабайты.
- Если файл уже небольшой на страницу, оставьте его как есть. Повторное сжатие текстового PDF размером 300 KB редко даёт меньше 250 KB, а часто в результате получается больше.
Замечание о «сжатии до целевого размера»
Некоторые инструменты предлагают целевой размер — «сделать этот файл 2 MB». Это другая операция: инструмент снижает разрешение и качество изображений, пока расчётный размер не уложится, и будет продолжать, пока файл не поместится, даже если страницы станут нечитаемыми. Если у формы есть жёсткий лимит на загрузку, это работает; если вы просто хотите файл поменьше, безопаснее выбрать фиксированную настройку качества.