Как уменьшить размер PDF
Что делать, если размеры файла в формате PDF превосходят ограничения на объем пересылаемых писем? Как тогда отправить такой файл? Пользователи Linux могут решить проблему всего одной строчкой в терминале.
Дело в том, что многие PDF-файлы имеют огромные объемы из-за изначальной ориентированности на бумажную печать. Но далеко не все файлы требуется печатать. Поэтому простое уменьшение такого показателя, как DPI (количество точек на дюйм) позволяет сократить объем в разы.
Возьмем для примера файл input.pdf, занимающий на диске 50 Мб. С помощью одной простой команды нам удастся сократить его объем до 15 Мб:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
При этом никакого видимого ухудшения качества картинки при просмотре на мониторе не произошло.
Используемая программа gs является частью пакета ghostscript, предустановленного во множестве Linux-дистрибутивов. Если в вашем Линуксе такой программ нет, то ее не составит сложности установить самостоятельно:
sudo apt-get install ghostscript
Ну а что же делать пользователям другой известной операционной системы — Windows? Такие пользователи могут для этих целей приобрести программный продукт Adobe Acrobat (38925,36 руб. 00 коп. в розницу).
Комментарии
Чингачгук
19 октября, 2014 - 03:43
ОГРОМНОЕ спасибо!
Задача была схожа: 20,8МБ->1,8МБ
Твой совет меня выручил :)
Чингачгук
10 августа, 2016 - 17:14
Спасибо. Может когда-нибудь пригодится.
pomodor
10 августа, 2016 - 17:26
Я, например, сжимал коллекцию книг. Основная масса в Djvu и примерно треть в PDF. Так эта треть перевешивала Djvu в 2 раза.
jtad
10 августа, 2016 - 19:03
впечатляет. Уже много раз могло понадобиться
Чингачгук
10 августа, 2016 - 20:01
Можно ещё открыть PDF в LibreOffice Draw и сразу же экспортировать в тот же PDF, но с другим (меньшим) DPI, результат будет тот же самый. Думаю, в винде этот способ тоже сработает — LibreOffice же кроссплатформенный.
pomodor
10 августа, 2016 - 20:28
Только на больших коллекциях документов можно задолбаться открывать в Либре. В терминале же можно запустить пакетную обработку по маске *.pdf.
Чингачгук
10 августа, 2016 - 21:26
pdf24 creator — в винде. Сжать и легко, и бесплатно.
comrade
11 августа, 2016 - 23:50
Это надстройка на том же ghostscript
:-)
jtad
11 августа, 2016 - 18:07
блин, огромное спасибо, очень практично. У меня мобильник s3 mini, мягко говоря не самый сильный. Читаю обыно журналы и книги в pdf пока еду. Сначала он шустро pdf открывает, потом все медленне, иногда ждешь секунд 5-10 пока загрузит очередную страницу, бывает даже виснет. Перепробовал несколько ридеров, результать тот же. Тут вчера посмотрел пережатый журнал, совсем другое дело. Жаль нельзя уровень оптимизации повысить, PDFSETTINGS=/screen это 72 dpi, меньше нельзя. А так — при 72 я даже ухудшения особенного не заметил (хотя на некоторых картинках слова уже не прочтешь :)).
Tauri
12 августа, 2016 - 18:45
Мое почтение! Что то не получается "сжать" свой файл для пробы. Сама книга лежит на раб.столе. Для обкатки процесса переименовал ее в input.pdf При вводе выше написанной команды выводит в терминале следующее (скриншот) i79.fastpic.ru/big/2016/0812/82/cb2805423cdee48f953fe57ce3851c82.jpeg
Буду благодарен за любую информацию по этому вопросу. Всем добра!
jtad
12 августа, 2016 - 18:50
так сначала перейти на ваш рабочий стол
cd /home/имя/рабочий стол
Tauri
12 августа, 2016 - 19:23
Благодарю за подсказку! В моем случае потребовалась такая команда
cd ~/"Рабочий стол"
Чингачгук
29 сентября, 2016 - 15:42
так сжал все разом
find -type f -exec gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile={} "деректория для сжатых pdf"{} \;
Чингачгук
29 сентября, 2016 - 18:26
тогда уж можно немного сделать поудобней
source=$(zenity --file-selection --directory --title="Открыть деректорию: ") && dest=$(zenity --file-selection --directory --title="Деректория для сохранения: ") && cd $source && for f in *.pdf; do echo "$dest/$f"; gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="$dest/$f" "$f"; done
Комментировать