Поиск по сайту:

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


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

Давайте узнаем некоторые методы командной строки и графического интерфейса для решения этой проблемы.

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

1. Использование GhostScript

Мы можем использовать утилиту командной строки ghostscript в Linux для сжатия PDF-файлов.

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

Например, в 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 Option Description
-dPDFSETTINGS=/screen Has a lower quality and smaller size. (72 dpi)
-dPDFSETTINGS=/ebook Has a better quality, but has a slightly larger size (150 dpi)
-dPDFSETTINGS=/prepress Output is of a higher size and quality (300 dpi)
-dPDFSETTINGS=/printer Output is of a printer type quality (300 dpi)
-dPDFSETTINGS=/default Selects the output which is useful for multiple purposes. Can cause large PDFS.

Я использовал приведенную выше команду для сжатия с 73 МБ до 14 МБ!

2. Используйте ps2pdf

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

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

Формат:

ps2pdf input.pdf output.pdf

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

ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf

Я попробовал это на 73-мегабайтном PDF-файле, и у него были те же результаты, что и у команды ghostscript, сжатый PDF-файл имел всего 14 МБ!

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

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

Уплотнить

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

Этот пакет называется Densify и доступен здесь (ссылка на github).

Я создал простой скрипт 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, сколько вам нужно, используя графический интерфейс!

Рекомендации

  • Вопрос StackOverflow об уменьшении размера PDF