Я ищу утилиту командной строки Linux , которая вводит объединенный PDF (от 1 МБ до 500 МБ) и выводит оптимизированную/линеаризованную версию. На каждой странице используется один и тот же набор из ~8 изображений и один и тот же шрифт. Запуск одного из моих тестовых файлов через Adobe Acrobat Pro увеличил размер файла с 34 МБ до 1,6 МБ примерно за 30 секунд. На самом деле я не ожидаю такой производительности, но что-то хотя бы наполовину более быстрое/эффективное было бы замечательно.
Мне это нужно для пакетного задания, работающего в 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 (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook (low quality, 150 dpi images)
-dPDFSETTINGS=/printer (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default (almost identical to /screen)
gs
это очень распространенный псевдоним (особенно для статуса git). Если вы получаете сообщение об ошибке, дважды проверьте, не используется ли псевдоним type gs
, или используйте полное имя ghostscript
вместо gs
. Также подтверждена работа над Ghostscript v9.55.0 для Fedora (Linux).pdfcpu
подавился pdf-файлами, которые были созданы из документа Google с ошибкой: dereferenceObject: problem dereferencing object 69: pdfcpu: parse: duplicate key
. Однако запуск его сначала через GhostScript (используя другой ответ), а затем с оптимизацией pdfcpu, дал лучшие результаты, чем только ghostscript.
ммс
Андреа Лаззаротто