Как уменьшить размер файла PDF, содержащего изображения?

18

У меня есть PDF-файл, содержащий изображения, и я хочу уменьшить его размер, чтобы загрузить его на сайт с ограничением размера.

Итак, как я могу уменьшить размер файла PDF из командной строки?

Pandya
источник

Ответы:

26

Вы можете использовать gs- GhostScript (интерпретатор и предварительный просмотрщик языка PostScript и PDF) следующим образом:

  • Установите pdfwrite в качестве устройства вывода-sDEVICE=pdfwrite
  • Используйте соответствующие -dPDFSETTINGS.

    Из документации :

    -dPDFSETTINGS = конфигурация Задает для
    «параметров дистиллятора» одну из четырех предопределенных настроек:

    • / screen выбирает вывод с низким разрешением, аналогичный настройке Acrobat Distiller «Screen Optimized».
    • / ebook выбирает вывод среднего разрешения, аналогичный настройке Acrobat Distiller «eBook».
    • / принтер выбирает вывод, аналогичный настройке Acrobat Distiller «Print Optimized».
    • / prepress выбирает вывод, аналогичный настройке Acrobat Distiller «Prepress Optimized».
    • / default выбирает вывод, предназначенный для использования в самых разных целях, возможно за счет большего выходного файла.
  • -oопция для вывода файла, который также устанавливает -dNOPAUSEи -dBATCH(см. Параметры, связанные с взаимодействием )

Пример:

$ du -h file.pdf 
27M file.pdf

$ gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -q -o output.pdf file.pdf

$ du -h output.pdf 
900K    output.pdf

Здесь -qподавляются обычные сообщения при запуске, а также делается эквивалент, -dQUIETкоторый подавляет обычные информационные комментарии

Pandya
источник
Не работает для меня Вывод PDF с возможностью поиска tesseractостается полностью неизменным при попытке уменьшить его с помощью этой команды.
Габриэль Стейплс
3
ps2pdf input.pdf output.pdf

Я получил ответ от Ask Ubuntu, и это сработало для меня. Это фактически уменьшило 18.1Mb до 1.0Mb

почетный гражданин
источник
Не работает для меня Вывод PDF с возможностью поиска tesseractостается полностью неизменным при попытке уменьшить его с помощью этой команды.
Габриэль Стейплс
Это очень просто, если вы не хотите выбирать все параметры, которые нужны GhostScript. На страницах руководства говорится, что скрипт принимает те же параметры gs, что и в следующем примере:ps2pdf -dPDFSETTINGS=/prepress figure.ps proof.pdf
Крис Луенго
0

Вы можете попробовать это:

$ time pdftk myFile.pdf output myFile__SMALLER.pdf compress
GC Warning: Repeated allocation of very large block (appr. size 16764928):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 11837440):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 7254016):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 34041856):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
    May lead to memory leak and poor performance.

real    0m23.677s
user    0m23.142s
sys     0m0.540s
$ du myFile*.pdf
108M    myFile.pdf
74M     myFile__SMALLER.pdf

Это быстрее, чем, gsно сжимает до 30% в этом случае для входного файла 107,5 МБ.

SebMa
источник
Не работает для меня Вывод PDF с возможностью поиска tesseractостается полностью неизменным при попытке уменьшить его с помощью этой команды.
Габриэль Стейплс