Уменьшить размер PDF файла.

Прислали мне тут файлик с картинками «для рассылки клиентам по почте» в формате PDF размером 59.2 MB o_O
И оригинал в CDR размером 153.6 МБ, который мне на linux открыть, прямо скажем, нечем.
Задача: уменьшить файл до приемлемого размера, чтобы не получить лучиков от «благодарных» клиентов и не засрать очередь почтового сервака при массовой рассылке.

Есть несколько вариантов, первый годится для ситуации, когда внутри PDF файлы JPG:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf input.pdf
Но в моём случае внутри PDF были файлы с диким количеством слоёв и результат не радовал — 29 MB.
Выход очевиден: надо выдернуть страницы из PDF в виде JPG файлов и потом собрать новый файл уже на их основе.
Импортируем PDF в JPG:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dMaxStripSize=8192 -sOutputFile=%02d.jpg input.pdf
В итоге получаем список файлов, соответствующий страницам документа в виде 01.jpg, 02.jpg …23.jpg, 24.jpg.
Собираем итоговый PDF, готовый для рассылки:
convert *.jpg input_web.pdf
Итог: 4,6 MB.

Опубликовано 17.09.2013 в 10:17 · Автор MIkhail Timofeev · Ссылка
Рубрики: freeBSD, Linux