Вопрос или проблема
Как увеличить уровень JPEG-компрессии в PDF с использованием пакетных инструментов под Linux?
Очевидно, вы можете использовать gs -dPDFSETTINGS=/screen
или /ebook
, но это выполняет субдискретизацию PDF – уменьшает DPI. Более эффективно (с точки зрения качества PDF на каждый КБ) использовать JPEG-компрессию, сохраняя при этом то же количество пикселей.
Например, https://docupub.com/pdfcompress/ позволяет уменьшить размер PDF вдвое, но при увеличении он все еще имеет хорошее качество, хотя и с некоторыми артефактами. При увеличении с использованием режима gs
/ebook
PDF неизбежно выглядит более пиксельным.
Какой инструмент для Linux позволяет нам применять JPEG-компрессию к каждому изображению в PDF?
Есть ли способ использовать convert -quality
из ImageMagick на PDF с несколькими изображениями?
Как указано в комментарии здесь: Как сжать изображения в PDF (через GUI, не использующий пакеты или CLI)?
вы можете попробовать
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dColorImageResolution=230 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed-output.pdf input.pdf
Настройте переменную dColorImageResolution – мне удалось уменьшить размер моего PDF примерно на треть (но с ухудшением качества изображения, как и ожидалось).
Встроенный convert
от ImageMagick может работать с PDF:
convert -density 300 input.pdf -quality 30 output.pdf
К сожалению, quality
кажется не распознается при добавлении других аргументов, таких как threshold
и не может сжать PDF, созданные ImageMagick, например:
convert -density 300 input.pdf -threshold 60% - | convert - -quality 30 output.pdf
не удается – он создает три копии каждой старой страницы на каждой новой странице.
Если вы знаете, как это обойти, пожалуйста, дайте мне знать.
Ответ или решение
Услуги для компрессии изображений внутри PDF в среде Linux являются важным аспектом оптимизации документооборота, особенно когда речь идет о сохранении качественного отображения без значительной потери разрешения. Разберем, как можно выполнить это с помощью различных инструментов, не прибегая к даунсемплингу.
Решение на основе инструментов командной строки
Одним из распространенных способов компрессии изображений в PDF является использование Ghostscript
. Однако командное использование, подобно gs -dPDFSETTINGS=/screen
, нередко приводит к снижению DPI, что вызывает нежелательное пикселирование при увеличении. Для более целенаправленного подхода, который сохраняет исходное разрешение изображений, следует рассмотреть хорошую комбинацию настроек Ghostscript:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dColorImageResolution=300 -dJPEGQ=50 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed-output.pdf input.pdf
В этой команде -dJPEGQ=50
задает уровень JPEG-компрессии, который определяет степень сжатия при сохранении исходного качества изображений.
ImageMagick и его ограничения
Другим инструментом, часто используемым для работы с изображениями в PDF, является ImageMagick
. Этот инструмент предоставляет широкие возможности управления качеством изображений через параметр -quality
. Однако, как вы указали, есть проблемы с низкой совместимостью некоторых настроек при непосредственной работе с PDF:
convert -density 300 input.pdf -quality 30 output.pdf
Тем не менее, преобразование изображений в PDF-формате через ImageMagick иногда может привести к нежелательному размножению страниц или появлению артефактов.
Рекомендации и оптимизация
Для достижения наилучшего результата при сжатии следует комбинировать подходы и тестировать их на небольших выборках. Если ImageMagick не удовлетворяет требованиям, рекомендуется использовать библиотеки Python, такие как pdfrw
и Pillow
, для достижения более детализированного управления изображениями в PDF.
Также стоит учитывать, что компрессия без потерь и минимизация размера должны сбалансировано сочетаться с ожиданиями качества изображения. Поэтому лучше всего экспериментировать с различными значениями параметров компрессии и разрешения, чтобы найти наилучшую конфигурацию для ваших конкретных нужд.
Заключение
В мире высоких цифровых требований крайне важно уметь эффективно сжимать PDF-файлы, сохраняя при этом их функциональность и качество. Правильный выбор инструментов и параметров компрессии может значительно улучшить рабочий процесс и снизить нагрузку на системы хранения данных.
Используйте вышеописанные инструменты и рекомендации как начальную точку для собственной оптимизации PDF. Обязательно тестируйте и адаптируйте стратегии под свои конкретные требования, чтобы достичь оптимальных результатов.