Пользователи Linux, работающие с PDF-файлами, регулярно сталкиваются со знакомым разочарованием: инструменты сжатия и учебные пособия, которые доминируют в результатах поиска, написаны для Windows и macOS, а альтернативы командной строки для Linux разбросаны по разным пакетам с противоречивой документацией. Сжатие PDF-файла в Linux вполне достижимо с использованием бесплатных инструментов с открытым исходным кодом, и во многих случаях подход командной строки Linux обеспечивает более точный контроль над параметрами сжатия, чем графические инструменты на других платформах. Этот процесс включает в себя выбор подходящего инструмента для работы и понимание параметров сжатия, которые позволяют сбалансировать размер файла и визуальное качество.

Использование Ghostscript для сжатия PDF-файлов из командной строки
Ghostscript — это самый мощный и широко доступный инструмент обработки PDF-файлов в Linux, предустановленный во многих дистрибутивах и доступный через любой менеджер пакетов. Он может сжимать PDF-файлы с помощью вызова командной строки, в котором указываются выходное разрешение, настройки сжатия изображений и уровень совместимости PDF. Основная команда сжатия: gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf input.pdf. Параметр PDFSETTINGS управляет уровнем сжатия по четырем предустановленным значениям, которые Ghostscript интерпретирует для конкретных вариантов понижения разрешения и кодирования.
Предустановка экрана создает файл наименьшего размера за счет понижения разрешения изображения до 72 точек на дюйм, подходящий только для чтения с экрана, где качество печати не требуется. Предварительная настройка электронной книги снижает разрешение до 150 точек на дюйм, обеспечивая разумный баланс для документов, которые будут читаться на планшетах и ноутбуках. Настройки принтера понижают разрешение до 300 точек на дюйм, сохраняя качество печати и одновременно обеспечивая значимое сжатие. Предпечатная подготовка применяет сжатие без потерь и сохраняет цветовые профили для профессиональной печати, создавая файл самого большого размера среди предустановок. Для большинства потребностей в сжатии PDF в Linux предустановка электронной книги или принтера обеспечивает правильный компромисс.
Попробуйте сжать PDF
Никакой установки не требуется. Работает прямо в вашем браузере.
Использование ps2pdf как облегченной альтернативы
Сценарий ps2pdf, который входит в состав пакета Ghostscript в большинстве дистрибутивов Linux, предоставляет более простой интерфейс командной строки для тех же основных функций. Запуск ps2pdf input.pdf output.pdf применяет набор оптимизаций сжатия по умолчанию, не требуя настройки каких-либо параметров. Настройки по умолчанию эквивалентны настройкам принтера Ghostscript, создавая файл, подходящий как для просмотра на экране, так и для печати. Этот подход с нулевой конфигурацией полезен для быстрого сжатия, когда вам не нужно точно настраивать выходные данные.
Для большего контроля ps2pdf принимает параметры Ghostscript через командную строку. Запуск ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf передает настройки электронной книги в Ghostscript. Запуск ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=100 input.pdf output.pdf специально настраивает понижение разрешения цветного изображения. Эффект Reduce PDF Size этих пользовательских параметров может быть более агрессивным, чем любой предустановленный вариант, но всегда проверяйте вывод на одном файле, прежде чем применять пользовательские настройки к пакету.
Использование qpdf для структурного сжатия
Ghostscript и ps2pdf повторно отображают содержимое PDF через интерпретатор PostScript, который может вносить незначительные изменения в рендеринг даже при настройках без потерь. Qpdf использует другой подход, выполняя структурную оптимизацию PDF-файла без повторной визуализации содержимого страницы. Команда qpdf --linearize --object-streams=generate --recompress-flate input.pdf output.pdf удаляет избыточные объекты, регенерирует сжатые потоки с лучшими коэффициентами сжатия и реорганизует структуру файла для более эффективного чтения. Сжатие Qpdf действительно без потерь, пиксели страницы идентичны оригиналу.
Qpdf особенно эффективен для PDF-файлов, которые редактировались несколько раз, поскольку каждый сеанс редактирования может оставить после себя неиспользуемые объекты и неоптимальное сжатие потока. Запуск qpdf для PDF-файла, прошедшего несколько этапов редактирования, часто приводит к уменьшению размера файла на двадцать-тридцать процентов без каких-либо изменений видимого содержимого. Инструмент qpdf доступен через менеджер пакетов во всех основных дистрибутивах Linux и обрабатывает файлы значительно быстрее, чем Ghostscript, поскольку он полностью пропускает этап рендеринга. Для PDF Compression, где точная точность до пикселя является обязательным, qpdf является предпочтительным инструментом.
Написание сценария оболочки для пакетного сжатия PDF-файлов
Сжатие одного PDF-файла из командной строки происходит быстро. Сжимать папку из пятидесяти PDF-файлов по одному утомительно. Короткий сценарий оболочки помещает команду сжатия в цикл, который обрабатывает каждый PDF-файл в каталоге. Базовый сценарий представляет собой цикл for: for f in *.pdf; do gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="compressed_$f" "$ф"; сделанный. При этом создается сжатая копия каждого PDF-файла с добавлением префикса к имени файла, оставляя оригиналы нетронутыми.
Добавьте проверку ошибок в сценарий для использования в рабочей среде. Перед попыткой сжатия убедитесь, что входной файл существует и доступен для чтения. Убедитесь, что выходной файл был успешно создан и после сжатия имеет ненулевой размер. Запишите исходный размер файла, размер сжатого файла и степень сжатия каждого файла в текстовый файл для последующего просмотра. Хорошо написанный сценарий пакетного сжатия экономит часы ручной работы в командной строке и обеспечивает запись того, какие именно файлы были сжаты, когда и насколько. Такие инструменты, как WukongPDF, предлагают пакетную функциональность Уменьшение размера PDF через интерфейс браузера для пользователей Linux, предпочитающих графический рабочий процесс.
Использование сжатия PDF в графическом интерфейсе Linux
Пользователи Linux, которые предпочитают графический интерфейс командной строке, имеют несколько вариантов сжатия PDF. PDF Arranger, доступный через большинство менеджеров пакетов, предоставляет визуальный интерфейс для изменения порядка, удаления и поворота страниц PDF, а его функция экспорта включает опцию сжатия, которая уменьшает разрешение изображений. Xournal++ открывает PDF-файлы в интерфейсе блокнота и может экспортировать аннотированные документы в виде сжатых PDF-файлов. LibreOffice Draw может открывать PDF-файлы и экспортировать их с настройками сжатия, примененными через диалоговое окно экспорта PDF.
Инструменты сжатия PDF-файлов на основе браузера одинаково работают в Linux, Windows и macOS, поскольку они запускаются в браузере независимо от операционной системы. Откройте предпочитаемый вами инструмент на основе браузера, загрузите PDF-файл, выберите уровень сжатия и загрузите результат. Этот независимый от ОС подход особенно удобен в Linux, поскольку он позволяет избежать необходимости устанавливать, настраивать и обновлять инструменты командной строки или искать подходящую утилиту сжатия в менеджерах пакетов.
Проверка результатов сжатия в Linux
После сжатия PDF-файла проверьте качество вывода с помощью встроенных инструментов Linux. Команда pdfinfo, входящая в пакет poppler-utils, отображает количество страниц, размер страницы и версию PDF как исходного, так и сжатого файлов, подтверждая, что структура страницы не повреждена. Команда идентификации из ImageMagick может извлекать отдельные страницы в виде изображений и сообщать их размеры в пикселях, позволяя вам проверить, снизило ли понижение разрешения разрешение изображения на ожидаемую величину.
Для визуальной проверки качества откройте исходный и сжатый PDF-файлы рядом в двух экземплярах Evince, Okular или предпочитаемой вами программы просмотра PDF-файлов Linux. Увеличьте масштаб страницы, содержащей как текст, так и изображения, как минимум до 200 процентов. Сравните резкость краев текста и наличие или отсутствие артефактов сжатия JPEG в фотографических областях. Если сжатая версия демонстрирует заметное ухудшение качества, повторно запустите сжатие с предустановленными настройками более высокого качества или пользовательскими параметрами Ghostscript, которые увеличивают разрешение понижающей дискретизации и порог качества JPEG.
Использование ImageMagick для сжатия изображений
Когда в размере PDF-файла преобладают несколько больших изображений, сжатие всего PDF-файла с помощью Ghostscript может быть излишним для текстовой и векторной частей. ImageMagick может ориентироваться на определенные изображения в PDF-файле. Извлеките изображения увеличенного размера с помощью pdfimages, входящего в пакет poppler-utils. Сжимайте каждое извлеченное изображение индивидуально с помощью команды преобразования с параметрами качества и изменения размера, настроенными для этого конкретного типа изображения. Затем соберите сжатые изображения в новый PDF-файл с помощью инструмента img2pdf.
Этот хирургический подход к сжатию полностью сохраняет четкость текста, поскольку текстовый слой никогда не перерисовывается. Изменяются только изображения. Уменьшение размера файла может быть существенным для PDF-файлов, в которых четкий векторный текст сочетается с фотографиями излишне высокого разрешения. Например, PDF-файл с фотографиями с разрешением 1200 точек на дюйм, встроенными в текстовый документ, можно уменьшить на восемьдесят и более процентов, уменьшив разрешение только фотографий до 300 точек на дюйм, оставив текст нетронутым.
Для пользователей Linux, которые предпочитают графическую обратную связь во время сжатия, PDF Compressor — это приложение на базе GTK, доступное через Flathub, которое предоставляет визуальный интерфейс для сжатия Ghostscript с параллельным предварительным просмотром исходного и сжатого вывода. Он поддерживает пакетную обработку и сохраняет профили сжатия для повторного использования.
Для PDF-файлов, которые будут распространяться по электронной почте в Linux, команда mutt поддерживает прикрепление файлов непосредственно из командной строки. После сжатия проверьте размер сжатого файла с помощью ls -lh и убедитесь, что он не превышает ограничения на вложения сервера электронной почты получателя, обычно 25 МБ для большинства провайдеров. Если файл по-прежнему слишком велик, рассмотрите возможность разделения PDF-файла на более мелкие разделы с помощью pdftk или qpdf перед отправкой.
Пакет poppler-utils, доступный во всех дистрибутивах Linux, включает в себя pdftoppm, который преобразует страницы PDF в форматы изображений. Это может быть полезно в качестве промежуточного шага, если вы хотите применить инструменты сжатия изображений к отдельным страницам перед их повторной сборкой.
Для автоматического сжатия PDF-файлов в серверной среде Ghostscript можно вызывать из заданий cron или таймеров systemd для обработки входящих PDF-файлов по расписанию. Подход с использованием командной строки упрощает автоматизацию.
Собственные инструменты сжатия PDF-файлов в Linux в сочетании с гибкостью сценариев оболочки обеспечивают, пожалуй, самую мощную и настраиваемую среду сжатия PDF-файлов, доступную в любой операционной системе.
Благодаря такой гибкости и контролю подход Linux к сжатию PDF-файлов стоит изучить всем, кто регулярно работает с большими коллекциями документов.
Попробуйте сжать PDF
Никакой установки не требуется. Работает прямо в вашем браузере.
