Из чего складывается размер PDF
Прежде чем сжимать файл, полезно понять, что именно в нём весит много. У документа с текстом, набранным в редакторе, размер обычно скромный: текст и шрифты занимают немного места. А вот PDF, собранный из снимков или сканов, по сути, представляет собой набор картинок, и каждая страница несёт полноценное изображение.
Основные источники веса:
- растровые изображения, вложенные в страницы: сканы, фотографии, скриншоты;
- встроенные шрифты, особенно если в документе их много разных;
- многократные сохранения в некоторых редакторах, после которых внутри остаются старые данные;
- вложения и служебные данные: прикреплённые файлы, миниатюры, метаданные.
Чтобы узнать, какой из пунктов виноват, в Linux и macOS с установленным набором poppler можно выполнить команду pdfimages с ключом -list: она покажет список изображений в файле с их размерами в пикселях и тип сжатия. Если картинок десятки, а пикселей на каждую приходятся миллионы, источник веса найден.
Это помогает выбрать способ. Когда виноваты сканы, есть смысл сжимать изображения или пересканировать. Когда в файле почти нет картинок, а размер всё равно велик, дело, вероятно, в шрифтах или вложениях, и тогда пересохранение из исходного редактора может помочь больше, чем сжатие.
Ещё один признак, который стоит проверить, это число страниц и их размер. Лист формата A3 или нестандартный большой лист при той же плотности пикселей занимает больше места, чем A4, а скан с запасом по краям содержит лишние области, которые тоже кодируются. Иногда достаточно обрезать поля и привести страницы к единому размеру, и файл уже становится заметно легче без потери читаемости.
Mac: экспорт с фильтром в «Просмотре»
В «Просмотре» есть готовый способ без дополнительных программ. Откройте PDF, выберите в меню «Файл» команду «Экспортировать…» (не «Сохранить»), и в окне экспорта найдите выпадающий список с фильтрами (он называется «Фильтр Quartz»). В нём может быть вариант Reduce File Size («Уменьшить размер файла»); название и наличие зависят от версии macOS.
Сохраните результат под новым именем и сравните размер с оригиналом. Фильтр может заметно уменьшить файл, но делает это без возможности настройки: изображения пережимаются с потерей качества, а мелкий текст на сканах может стать менее чётким. Для справки в одну страницу этого хватает, для документа с мелкими цифрами или печатями стоит проверить результат при увеличении.
Оригинал сохраняйте. Фильтр необратим: когда детали потеряны, вернуть их из сжатой копии нельзя. Если качество не устроило, повторите экспорт из исходного файла, а не из уже сжатого, иначе потери накопятся.
Если нужно сжать документ с важными подписями и печатями, сравните результат с оригиналом на экране при увеличении. Особенно внимательно посмотрите на мелкие цифры, номера и штрихи: именно они первыми страдают от сильного пережатия. Если разборчивость пострадала, повторите экспорт из исходного файла с другим вариантом, а не пытайтесь улучшить уже сжатую копию.
Ghostscript: пресеты качества
Ghostscript устанавливается в Linux через менеджер пакетов, а для macOS и Windows существуют сборки. Для сжатия используется драйвер pdfwrite и параметр -dPDFSETTINGS с одним из готовых значений.
| Значение | Для чего подходит | Что происходит |
|---|---|---|
| /screen | Чтение с экрана | Низкое разрешение изображений, наиболее компактный результат |
| /ebook | Пересылка, чтение на планшете | Среднее разрешение, обычно приемлемо для текста |
| /printer | Печать | Более высокое разрешение, файл заметно крупнее |
| /prepress | Подготовка к типографии | Высокое качество и сохранение цвета, файл крупнее |
Пример команды: gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=малый.pdf исходный.pdf. Начните со значения /ebook: оно часто выдаёт разумный баланс. Если читаемость недостаточная, попробуйте /printer, а если нужно сильнее уменьшить файл, /screen.
Ghostscript формирует документ заново, поэтому проверьте итог: страницы на месте, текст читается, картинки не искажены. Подробности остальных параметров смотрите в справке команды.
Параметр -dPDFSETTINGS задаёт целый набор настроек сразу, поэтому отдельные значения вроде разрешения изображений можно потом уточнять вручную, но для первого раза готовых пресетов достаточно. Полезно сохранять несколько вариантов с разными пресетами и сравнить их по размеру и читаемости: отличия легче оценить на реальном документе, чем по описанию.
Пересканировать с другими параметрами
Если у вас есть исходный бумажный документ или снимки, часто проще сделать файл меньше, чем сжимать готовый. Параметры сканирования часто влияют на вес сильнее, чем сжатие после.
Что влияет на размер:
- Разрешение. Для текста обычно хватает 200–300 dpi; значения выше увеличивают файл, а читаемость почти не улучшается.
- Цветовой режим. Чёрно-белый или оттенки серого весят меньше цветного; если на странице нет цветных элементов, цвет можно не использовать.
- Формат изображения внутри. Приложения-сканеры обычно позволяют выбрать качество; умеренное качество JPEG даёт заметно более лёгкий файл.
- Поля. Лишние края страницы тоже кодируются; обрезка до границ листа слегка уменьшает вес.
Подробнее о выборе разрешения и режима рассказано на странице про разрешение скана.
Для документов, которые нужно сохранить надолго или отправить в учреждение с требованиями к качеству, разумнее не пережимать изображение сильно и сохранить исходный файл рядом с лёгкой копией.
Чего не делать и когда сжатие не поможет
Если PDF весит много из-за качественных иллюстраций, чертежей или фотографий, сильное сжатие даст видимую потерю качества. В таких случаях разумнее оставить файл как есть и отправить его другим способом, например через общий доступ по локальной сети или на носителе, как описано на странице про передачу больших файлов.
Не стоит рассчитывать, что архив ZIP заметно уменьшит PDF: внутри файла данные обычно уже сжаты, поэтому упаковка в архив даёт небольшой выигрыш или вовсе не меняет размер.
Загружать документы с персональными данными на сайты для онлайн-сжатия не рекомендуется: файл уходит на чужой сервер, и контролировать его дальнейшую судьбу вы не можете. Все описанные способы работают локально.
Наконец, у получателя может быть ограничение на размер вложения. Узнайте его заранее, чтобы не подгонять файл несколько раз. Лимит на вложение зависит от почтового сервиса и обычно указан в справке.