Оптимизатор PDF для командной строки (линеаризатор)

Вопрос или проблема

Я ищу утилиту командной строки для Linux, которая принимает объединённый PDF (между 1 МБ и 500 МБ) и выводит оптимизированную/линеаризованную версию. Каждая страница использует один и тот же набор из ~8 изображений и один и тот же шрифт. Пропуск одного из моих тестовых файлов через Adobe Acrobat Pro занял всего около 30 секунд, и размер файла уменьшился с 34 МБ до 1,6 МБ. Я не ожидаю такой производительности, но что-то даже наполовину таким быстрым/эффективным было бы замечательно.

Мне это нужно для пакетной обработки на Linux, поэтому необходима командная строка. Я пробовал pdftk, gs, qpdf, pdftops и pdfsizeopt. Первые 4 слишком медленны или не полностью оптимизируют pdf файлы. pdfsizeopt кажется многообещающим, но у меня проблемы с последовательностью — некоторые из моих pdf работают, другие выдают ошибки.

Есть ли идеи, кроме тех, что я уже перечислил? Я бы не возражал даже купить что-то, если это будет работать.

Я лично использую Ghostscript для оптимизации размера моих PDF файлов. Вы можете указать уровень оптимизации, и он уменьшит размеры изображений. Это также имеет (на мой взгляд, желательный) побочный эффект удаления элементов, которые находятся за пределами полей страницы.

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

Уровни, которые вы можете использовать:

-dPDFSETTINGS=/screen (качество только для просмотра на экране, 72 dpi изображения)
-dPDFSETTINGS=/ebook (низкое качество, 150 dpi изображения)
-dPDFSETTINGS=/printer (высокое качество, 300 dpi изображения)
-dPDFSETTINGS=/prepress (высокое качество, сохраняющее цвет, 300 dpi изображения)
-dPDFSETTINGS=/default (почти идентично /screen)

PdfCpu работает отлично:

pdfcpu optimize in.pdf out.pdf

https://pdfcpu.io/core/optimize

mutool — это то, что я использую в последние несколько лет

# минимально возможный выход
mutool clean -ggggl -dfiz IN.pdf OUT.pdf

# слегка, но незначительно больше
mutool clean -gggg -l IN.pdf OUT.pdf

https://mupdf.com

Ответ или решение

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

1. Ghostscript

Ghostscript — это мощный инструмент для работы с PDF и PostScript файлами, который позволяет изменять размер и оптимизировать PDF-документы. Вы можете настроить уровень оптимизации, а также уменьшить размер изображений. Ниже приводится пример использования Ghostscript для создания оптимизированной версии файла:

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

Уровни оптимизации Ghostscript:

  • -dPDFSETTINGS=/screen: для просмотра на экране, качество 72 dpi.
  • -dPDFSETTINGS=/ebook: низкое качество, 150 dpi.
  • -dPDFSETTINGS=/printer: высокое качество, 300 dpi.
  • -dPDFSETTINGS=/prepress: высокое качество, цветопередача, 300 dpi.

2. PdfCpu

PdfCpu — это современный инструмент, который также отлично подходит для оптимизации PDF. Простота использования и эффективность делают его предпочтительным выбором. Пример команды для оптимизации:

pdfcpu optimize in.pdf out.pdf

Дополнительной информацией о настройках и получении лучших результатов можно найти на официальном сайте PdfCpu.

3. Mutool

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

mutool clean -ggggl -dfiz IN.pdf OUT.pdf

Для менее агрессивной оптимизации:

mutool clean -gggg -l IN.pdf OUT.pdf

Дополнительные сведения о Mutool можно найти на сайте MuPDF.

4. PDFtk

Хотя вы упомянули, что PDFtk не оправдал ваших ожиданий, он все же может быть полезен в некоторых случаях, особенно для простых задач, таких как сжатие или объединение PDF-документов.

Заключение

Если у вас есть возможность протестировать различные инструменты, стоит попробовать Ghostscript, PdfCpu и Mutool, так как они продемонстрировали наилучшие результаты в оптимизации PDF-документов с учетом ваших требований. Пишите ваши команды в скрипт и запускайте их в пакетном режиме для обработки множества файлов. Большинство из этих инструментов позволяет легко настроить параметры в соответствии с вашими потребностями, что сделает процесс максимально эффективным.

При возникновении ошибок или нестабильности в процессе оптимизации, рекомендую проверять исходные PDF-документы на наличие проблем или несовместимостей, которые могут препятствовать корректной обработке.

Наилучшие пожелания в вашем проекте по оптимизации PDF-документов!

Оцените материал
Добавить комментарий

Капча загружается...