Сжатие PDF-файлов на Mac. Добавляем собственные фильтры сжатия PDF.

Июнь, 26th 2018Рубрика: Apple 324
Подписаться на комментарии по RSS

сжатие PDF-файлов на Mac

Все без исключения пользователи Mac давно оценили удобство работы с PDF файлами в macOS, позволяя создавать эти самые PDF на уровне системы, не важно, предусмотрел разработчик данную функцию в своём приложении или нет.

Но это ещё не всё, если кто не знает, то с помощью стандартной программы «Просмотр» можно запросто объединять и сжимать PDF документы, а так же добавлять в них текст и комментарии.

Собственно, для изменения размера PDF достаточно открыть его программе «Просмотр» и перейти в меню «Файл» > «Экспортировать», где во всплывающем меню, в поле «Фильтр Quartz» выбрать «Reduce File Size» и указать место размещения нового pdf-файла. Всё.

Напрашивается резонный вопрос, раз всё это маки умеют делать прямо "из коробки", какой смысл в данной статье?

Дело в том, что сжатием изображений (отсканированные pdf по сути просто набор картинок) в macOS, как вы уже поняли, занимается фильтр Quartz. Одна беда - со стандартными настройками он жмёт как в последний раз, так что хрен потом разберёшь что было в оригинале. И что самое обидное, разработчики Apple не предоставили нам никакой возможности повлиять на работу фильтра, но не всё потеряно...

Добавляем собственные фильтры сжатия PDF

Получается что инструмент вроде как есть и задачу свою выполняет исправно, но вот результат не радует - из почти 100 Мбайтной PDF сделал мне 980 Кбайтную "какашку". Видя такое безобразие, решил добавить фильтры со своими настройками к системным.

Для начала скопируем файл с именем "Reduce File Size.qfilter" из системной папки /System/Library/Filters/ на рабочий стол:

cp /System/Library/Filters/Reduce\ File\ Size.qfilter ~/Desktop/

Этот файл (в формате XML) и возьмём за основу для создания собственных фильтров с нужными настройками сжатия (себе сделал с разрешениями 72dpi и 150dpi). Открываем файл стандартным текстовым редактором TextEdit (я лично использую Sublime Text), где видим вполне понятные записи в виде ключ (key) -> значение.

Приступим к настройке требуемых значений для сжатия изображений:

  • ImageCompression - регулирует общее качество полученного изображения в диапазоне от -1 (наилучшее качество) до 1 (наибольшее сжатие).
  • группа параметров ImageScaleSettings отвечает за масштабирование изображений
  • ImageScaleFactor задаёт коэффициент масштабирования. Значение 0,5 уменьшит картинку в два раза (например изображение размером 1200x400 пикселей, станет 600x200, что приведёт к уменьшению файла).
  • параметры ImageSizeMax и ImageSizeMin соотвественно ограничивают максимальный и минимальный размер изображений при масштабировании.

Предыдущие параметры оперируют относительными величинами, мне же удобнее задавать абсолютные значения, устанавливая все изображения в одно разрешение. Для этого создадим новый параметр в группе ImageScaleSettings и назовём его ImageResolution.

Осталось прописать нужное значение пикселей на дюйм (dpi), например: 72, 150 или 300 и установить коэффициент масштабирования, минимальный и максимальный размер изображения в ноль. Не забудьте прописать отображаемое имя своего фильтра в поле Name (Имя) - например "72 dpi image" и изменить имя файла (я назвал 72dpi.qfilter). Подобным образом можно сделать любые фильтры по вашему желанию.

фильтр сжатия PDF файлов на Mac

Для того чтобы они появились в контекстном меню, помещаем наши файлы *.qfilter в каталог /Library/PDF Services/:

sudo cp ~/Desktop/*.qfilter /Library/PDF\ Services/

Архив с готовыми файлами .qfilter на 72 и 150 dpi можете скачать прямо сейчас (2KB).

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.