Як зменшити розмір файлу PDF?


51

Я шукаю в Ubuntu способу зменшити розмір PDF (за рахунок зниження якості зображень).

Я знаю, що це можна зробити в Ghostscript, ввівши в терміналі таку команду:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Проблема полягає в тому, що я не можу точно визначити якість. Параметр -dPDFSETTINGS=/screen- той, який визначає якість; але альтернативи досить жорсткі (наприклад, це можна зробити -dPDFSETTINGS=/ebookдля трохи кращої якості).

Я шукаю спосіб зменшити розмір PDF-файлу таким чином, щоб я міг числово вказати бажану якість.


Ви можете перевірити це питання .
Glutanimate


Це справді дублікат!
hectorpal

Відповіді:


57

Мені вдалося зробити невелику зміну вашої команди успішно, використовуючи параметр -r300 від @drN Опція -r дозволяє встановити вихідну роздільну здатність у форматі pdf, а також у png.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
    -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages \
    -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf

7
Ця команда перетворила 4-сторінковий PDF з розміром 25 Мб у майже такий же якісний, але 2 Мб. Ура!
Янік Рошон

Це працює з більшістю файлів. Однак у деяких випадках він фактично збільшує розмір файлу. Здається, -rваріант ігнорується в цих випадках.
Luís de Sousa

Ця команда спожила всю мою оперативну пам’ять (8 Гбіт) і заморозила мій ноутбук у форматі PDF у 1000 сторінок.
До

12

Ці два повідомлення, які я опублікував у Stackoverflow, повинні вам допомогти. Я намагався зменшити розмір pdfs, гарантуючи, що вони відповідають певній dpi або ppi для моєї тези.

Зменшення розміру PDF у форматі ghostscript

Зміна зображення у форматі dpi за допомогою gs

Ви намагалися пограти convertв Linux?

Редагувати:

gs \
  -o out300.png \
  -sDEVICE=pngalpha \
  -r300 \
   input.pdf

Якщо я пам'ятаю правильно, r300це вихід, dpiале ви, можливо, захочете перевірити. Це, однак, перетворює PDF у png.

АБО

convert -units PixelsPerInch myPic.pdf -density 300 fileout.pdf

Дайте нам знати, як це йде! Це для формату PDF або будь-якого іншого формату до будь-якого іншого формату. Я щойно використовував вхідний файл myPic.pdf та вихідний файл fileout.pdf


Хм ... я переглянув питання, з якими ви пов’язані. Вони цікаві, але важко знайти конкретну команду, яку я повинен використовувати. Я шукаю команду з деяким числовим значенням, з яким я можу зіграти, що визначить якість. Чи можете ви виконати таку команду? Чи можна це зробити за допомогою перетворення?
Ніколь

Я відредагував свою відповідь, щоб включити ще простіші варіанти. Погляньте і повідомте нам! :)
дорогийN

1
Перетворення збільшує розмір PDF, навіть якщо я використовую 100 dpi. Можливо, найкращим вибором є перетворення в png за допомогою "gs", а потім "конвертування" для переходу в pdf?
Ніколь

@Nicole Завжди були проблеми з перетвореннями у форматі PDF. Для чого ви пропонуєте використовувати pdf?
DearN

@Nicole Я помітив, що для отримання найкращого результату для файлів pdfs / eps я повинен би повернутися до програми, яка в першу чергу зробила pdf та змінити параметри збереження для збереження у dpi / ppi, який я хочу. Я сподіваюся, що це допомагає і так, це може трохи заподіяти біль.
DearN

12

Найпростіший спосіб, який я знайшов, - це відкрити файл PDF з LibreOffice Draw і потім експортувати в PDF з очікуваним DPI. Діалогове вікно "Експорт" Draw дозволяє вказати DPI та інші параметри експортованого PDF.


1
Я спробував усі інші речі командного рядка, але врешті-решт це дозволило мені підвищити стиснення достатньо для моїх цілей.
C.Rogers

1
Графічний шлях із ще великим контролем.
Агменор

Я дізнався, що LibreOffice Draw краще друкувати / експортувати PDF, ніж майже все інше, тому +1.
Йорк

1
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=myNewFile.pdf myOldFile.pdf

Це найпростіший спосіб, на мою думку, дозволяє зменшити розмір до 50 +/- kb. На своєму терміналі перейдіть до каталогу файлу: example

cd ~/document/files

Потім введіть вищезгаданий код де:

myNewFile.pdf

нове ім'я файлу та

myOldFile.pdf

- це ім'я файлу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.