Як зменшити розмір файлу 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.