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


19

У мене є pdf-файл, який містить зображення, і я хочу зменшити його розмір, щоб завантажити його на сайт з обмеженням розміру.

Отже, як я можу зменшити розмір файлу pdf з командного рядка?

Відповіді:


26

Ви можете використовувати gs- GhostScript (інтерпретатор та переглядач мови PostScript та PDF) таким чином:

  • Встановіть pdfwrite як вихідний пристрій-sDEVICE=pdfwrite
  • Використовуйте відповідне -dPDFSETTINGS.

    З документації :

    -dPDFSETTINGS = конфігурація Попередньо задає
    "параметри дистилятора" на одне з чотирьох заздалегідь заданих налаштувань:

    • / screen вибирає вихід з низькою роздільною здатністю, аналогічний налаштуванню Acrobat Distiller "Optimized Screen".
    • / ebook вибирає вихід середньої роздільної здатності, подібний до налаштування "Електронна книга" Acrobat Distiller.
    • / принтер вибирає вихід, аналогічний налаштуванню "Оптимізований друк" в Acrobat Distiller.
    • / prepress вибирає вихід, аналогічний налаштуванню Acrobat Distiller "Prepress Optimized".
    • / за замовчуванням вибирає вихід, який повинен бути корисним для широкого спектру використання, можливо за рахунок більшого вихідного файлу.
  • -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який пригнічує звичайні коментарі до інформації


Не працює для мене. Вихід у форматі PDF, який можна шукати, tesseractзалишається повністю незмінним при спробі зменшити його за допомогою цієї команди.
— Габріель

3
ps2pdf input.pdf output.pdf

Я отримав відповідь із запитання ubuntu, і це працювало на мене. Це фактично знизило 18,1Mb до 1,0Mb


Не працює для мене. Вихід у форматі PDF, який можна шукати, tesseractзалишається повністю незмінним при спробі зменшити його за допомогою цієї команди.
— Габріель

Це надзвичайно просто, якщо вам не байдуже обирати всі параметри, які потрібні GhostScript. Сторінки чоловіка говорять про те, що сценарій приймає ті самі параметри gs, що і цей приклад:ps2pdf -dPDFSETTINGS=/prepress figure.ps proof.pdf
— Cris Luengo

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,5MiB.


Не працює для мене. Вихід у форматі PDF, який можна шукати, tesseractзалишається повністю незмінним при спробі зменшити його за допомогою цієї команди.
— Габріель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.