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

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

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

Любые идеи, кроме того, что я уже перечислил? Я бы даже не отказался купить что-нибудь, если бы оно работало.

Линеаризация и размер файла не связаны напрямую... можете ли вы уточнить, что именно вы хотите?
@Alec Sanger: Если мой ответ был вам полезен, подумайте о том, чтобы пометить его как принятый ответ , чтобы другим было легче найти его в будущем. Это также вежливый способ поблагодарить человека, отвечающего на ваш вопрос, за помощь.

Ответы (2)

Я лично использую 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)
Для тех, кому интересно, это дает гораздо лучшее сжатие, чем pdfsizeopt
Я, может быть, единственный, кого это укусило, но это было достаточно плохо, и я решил оставить комментарий. gsэто очень распространенный псевдоним (особенно для статуса git). Если вы получаете сообщение об ошибке, дважды проверьте, не используется ли псевдоним type gs, или используйте полное имя ghostscriptвместо gs. Также подтверждена работа над Ghostscript v9.55.0 для Fedora (Linux).

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

pdfcpu optimize in.pdf out.pdf

https://pdfcpu.io/core/оптимизировать

pdfcpuподавился pdf-файлами, которые были созданы из документа Google с ошибкой: dereferenceObject: problem dereferencing object 69: pdfcpu: parse: duplicate key. Однако запуск его сначала через GhostScript (используя другой ответ), а затем с оптимизацией pdfcpu, дал лучшие результаты, чем только ghostscript.
вы разработчик или иным образом связаны с проектом? Я не могу поделиться вчерашним PDF-файлом, но я могу попытаться воспроизвести его с помощью распространяемого PDF-файла.
@Freedom_Ben Я эксперт по го, так что могу помочь