Site icon 8HOST.COM

Как уменьшить размер файла PDF в Linux

Иногда, работая с большими файлами PDF в системе Linux, у нас возникает необходимость уменьшить их. В этом руководстве мы рассмотрим различные способы уменьшения или сжатия PDF-файлов в Linux, включая некоторые методы командной строки и графического интерфейса.

Читайте также: Сжатие изображений при помощи CLI и GUI

Утилиты для уменьшения размера файлов PDF в Linux

GhostScript

В Linux для сжатия PDF-файлов vj;yj использовать утилиту командной строки ghostscript.

Если команда недоступна на вашем компьютере, вы можете установить ее с помощью менеджера пакетов.

Например, в Ubuntu вы можете использовать apt:

sudo apt install ghostscript

Эта волшебная команда может сжимать PDF-файлы до читабельного качества: 

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Вместо output.pdf и input.pdf укажите имена соответствующих файлов.

В таблице ниже представлены различные флаги параметра -dPDFSETTINGS. Используйте их в соответствии с вашими потребностями.

Опция

Описание 

-dPDFSETTINGS=/screen Более низкое качество и меньший размер. (72 т/д)
-dPDFSETTINGS=/ebook Лучшее качество, но чуть больший размер (150 dpi)
-dPDFSETTINGS=/prepress Вывод имеет более высокий размер и качество (300 dpi)
-dPDFSETTINGS=/printer Качество вывода подходит для принтерной печати (300 dpi)
-dPDFSETTINGS=/default Выбирает вывод, который подходит для нескольких целей, однако может создавать большие PDF-файлы.

Мы использовали приведенную выше команду для сжатия файла объемом 73 МБ до 14 МБ.

Утилита ps2pdf

Команда ps2pdf преобразует файл PDF в PS, а затем обратно, в результате эффективно сжимая его.

Это не всегда срабатывает, но иногда дает очень хорошие результаты.

Синтаксис выглядит так: 

ps2pdf input.pdf output.pdf

Чтобы получить наилучшую производительность, рекомендуем использовать параметр -dPDFSETTINGS=/ebooks, поскольку электронные книги имеют самый удобный для чтения размер, а также занимают достаточно мало места.

ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
Мы применили эту команду к PDF-файлу размером 73 МБ и получили те же результаты, что и с командой ghostscript: сжатый PDF-файл был размером всего 14 МБ!

Графические утилиты для уменьшения PDF-файлов в Linux

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

Densify

Densify — это графический интерфейс для ghostscript, который можно установить в любом дистрибутиве Linux, поскольку он использует Python3 и его модули GTK.

Этот пакет доступен здесь.

Мы создали простой bash-скрипт для выполнения всей необходимой работы. Запустите этот bash-скрипт от имени пользователя root, чтобы связать и загрузить необходимые файлы.

#!/bin/bash
#- HELPER SCRIPT FOR DENSIFY
#-    original package         https://github.com/hkdb/Densify
#-    script author            Vijay Ramachandran
#-    site                     https://journaldev.com
#- 

# Go to your home directory (preferred)
cd $HOME

# Download the package
git clone https://github.com/hkdb/Densify
cd Densify

# Queue must be changed to queue in the file.
# Will not work otherwise
sed -i 's/Queue/queue/g' $PWD/densify

# Create the symlink to /opt
sudo ln -s $PWD /opt/Densify

# Perform the install
cd /opt/Densify
sudo chmod 755 install.sh
sudo ./install.sh

# Export to PATH
if [ $SHELL == "/bin/zsh" ]; then
    if test -f $HOME/.zshrc; then
        echo 'export PATH=/opt/Densify:$PATH' >> $HOME/.zshrc
        source $HOME/.zshrc
    else
        echo "No zshrc Found! Please create a zsh config file and try again"
    fi
else
    if [ $SHELL == "/bin/bash" ]; then
        if test -f $HOME/.bashrc; then
            echo 'export PATH=/opt/Densify:$PATH' >> $HOME/.bashrc
            source $HOME/.bashrc
        else
            if test -f $HOME/.bash_profile; then
                echo 'export PATH=/opt/Densify:$PATH' >> $HOME/.bash_profile
                source $HOME/.bash_profile
            else
                echo "No bashrc Found! Please create a bash config file and try again"
            fi
        fi
    else
        echo "Default Shell is not zsh or bash. Please add /opt/Densify to your PATH"
    fi
fi

Если при этом не возникает ошибок, просто введите приведенную ниже команду из opt/densify, чтобы запустить графический интерфейс, или откройте его через панель. 

densify

С помощью данного графического интерфейса вы можете сжимать любое необходимое вам количество PDF-файлов.

Дополнительную полезную информацию о сжатии вы найдете здесь.