У меня есть PDF-файл размером 72,9 МБ, который мне нужно сжать до 500 КБ.
Файл представлял собой изображение в формате JPEG, которое я отсканировал, а затем преобразовал в pdf.
У меня есть PDF-файл размером 72,9 МБ, который мне нужно сжать до 500 КБ.
Файл представлял собой изображение в формате JPEG, которое я отсканировал, а затем преобразовал в pdf.
Используйте следующее призрачный скрипт команда:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \-dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Краткое изложение -dPDFSETTINGS
:
-dPDFSETTINGS=/screen
более низкое качество, меньший размер. (72 точек на дюйм)-dPDFSETTINGS=/ebook
для лучшего качества, но немного больших PDF-файлов. (150 точек на дюйм)-dPDFSETTINGS=/prepress
вывод аналогичен настройке Acrobat Distiller "Оптимизированная допечатная подготовка" (300 точек на дюйм)-dPDFSETTINGS=/printer
выбирает вывод, аналогичный настройке Acrobat Distiller "Оптимизированный для печати" (300 точек на дюйм)-dPDFSETTINGS=/default
выбирает выходные данные, предназначенные для широкого спектра применений, возможно, за счет большего выходного файлаСсылка: https://www.ghostscript.com/doc/current/VectorDevices.htm#PSPDF_IN:
Элементы управления и функции, специфичные для ввода PostScript и PDF
-dPDFSETTINGS=configuration
Настраивает "параметры дистиллятора" на одну из четырех предопределенных настроек:
/screen
выбирает вывод с низким разрешением, аналогичный настройке Acrobat Distiller (до версии X) "Оптимизированный для экрана"./ebook
выбирает вывод со средним разрешением, аналогичный настройке Acrobat Distiller (до версии X) "Электронная книга"./printer
выбирает вывод, аналогичный настройке Acrobat Distiller "Оптимизированный для печати" (до версии X)./prepress
выбирает вывод, аналогичный настройке Acrobat Distiller "Оптимизированный для допечатной подготовки" (до версии X)./default
выбирает выходные данные, предназначенные для широкого спектра применений, возможно, за счет большего выходного файла.
Точные настройки для каждого из них, включая их значения DPI, показаны в десятках параметров в этой таблице: https://www.ghostscript.com/doc/current/VectorDevices.htm#distillerparams.
Мой любимый способ сделать это - преобразовать PDF в PostScript и обратно. Правда, это не всегда срабатывает, но когда это срабатывает, результаты получаются хорошие:
ps2pdf input.pdf output.pdf
Это также напрямую работает с PDF-файлами, как было предложено в комментариях.
Некоторые пользователи также сообщают о большем успехе при использовании настройки электронной книги следующим образом:
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
aking1012 прав. С дополнительной информацией о возможных встроенных изображениях, гиперссылках и т.д. Было бы намного проще ответить на этот вопрос!
Вот несколько решений для сценариев и командной строки. Используйте так, как считаете нужным.
Если у вас есть pdf с отсканированными изображениями, вы можете использовать convert
(ImageMagick) для создания pdf-файла с сжатие jpeg (Вы можете использовать этот метод для любого pdf-файла, но вы потеряете всю текстовую информацию).
Например:
convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf
Настройте параметры в соответствии с вашими потребностями
Мне удалось добиться отличных коэффициентов сжатия для отсканированных / сфотографированных документов (в зависимости от настроек). В зависимости от источника документа вы можете уменьшить глубину цвета (-depth
аргумент).
Мне нужно было уменьшить размер PDF-файла, содержащего полноцветные сканы документа. Каждая из моих страниц представляла собой полноцветное изображение, насколько это касалось файла. Это были изображения страниц, содержащих текст и изображения, но они были созданы путем сканирования в изображение.
Я использовал комбинацию приведенной ниже команды ghostscript и команды из другого потока.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf
Это уменьшило разрешение изображения до 150 точек на дюйм, сократив размер моего файла вдвое. Глядя на документ, заметной потери качества изображения почти не было. Текст по-прежнему отлично читается на моем Nexus7 2012 года выпуска.
Вот сценарий для перезаписи отсканированных PDF-файлов:
#!/bin/shgs -q -dNOPAUSE -dBATCH -dSAFER \ -sDEVICE=pdfwrite \ -dCompatibilityLevel=1.3 \ -dPDFSETTINGS=/screen \ -dEmbedAllFonts=true \ -dSubsetFonts=true \ -dColorImageDownsampleType=/Bicubic \ -dColorImageResolution=72 \ -dGrayImageDownsampleType=/Bicubic \ -dGrayImageResolution=72 \ -dMonoImageDownsampleType=/Bicubic \ -dMonoImageResolution=72 \ -sOutputFile=out.pdf \ $1
Вы могли бы немного настроить его, чтобы сделать более многоразовым, но если у вас есть только один pdf-файл, вы можете просто заменить $1
с вашим именем файла pdf и загрузил его в терминал.
Это даст хороший результат.
Я обычно использую ps2pdf для этого (более простой синтаксис), что-то вроде этого:
ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF
Я использую следующий скрипт python, чтобы уменьшить размер всех pdf-файлов в каталоге на производственном сервере (8.04). Так что это должно сработать.
#!/usr/bin/pythonimport osfor fich in os.listdir('.'): if fich[-3:]=="pdf": os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
Лучшим для меня было
convert -compress Zip -density 150x150 input.pdf output.pdf
Другие способы:
#### gsgs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE### pdf2ps && ps2pdfpdf2ps input.pdf output.ps && ps2pdf output.ps output.pdf### Webservicehttp://compress.smallpdf.com/de
с уважением
Я настоятельно рекомендую pdfsizeopt pdfsizeopt.
Это намного эффективнее с точки зрения уменьшения размера, чем любое из предыдущих программных средств CLI и GUI, которые я пробовал (включая convert
, gs
, pdftk
и т.д.) — хотя, возможно, медленнее с pngout
активирован —, и у него нет некоторых из их проблем (нет сильно пикселизированных / ухудшенных изображений, нет потери метаданных, таких как оглавление и т.д.).
Теперь, если вам нужно достичь определенного размера, каковы бы ни были последствия (включая ухудшение качества изображений до нечитаемости), это может быть не тот инструмент, который вам нужен, а как всегда работающее решение для уменьшения ненужных больших размеров в PDF-файлах без потери удобочитаемости, информации и приемлемого качество изображения, я думаю, что это лучший вариант. (Примечание: я обычно использую его после первого выполнения векторизации-распознавания текста в Adobe Acrobat [функция раньше называлась "CleanScan"], что может существенно повлиять на размер некоторых отсканированных текстовых документов.)
Я рекомендую универсальная установка Unix:
Загрузите и установите исполняемый файл:
curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single chmod +x pdfsizeopt.single cp pdfsizeopt.single /usr/local/bin/pdfsizeopt
Использование:
pdfsizeopt original.pdf [compressed.pdf]
Примечание для мак пользователи, нашедшие этот пост (или пользователи Linuxbrew): существует формула установки Homebrew:
brew install --HEAD pts/utils/pdfsizeopt
PDF в PS не работает в отсканированном PDF-файле, я пытаюсь конвертировать 56 МБ pdf в ps-файл, но ps-файл конвертируется в 1,3 ГБ, и снова ps2pdf преобразуется в файл размером 45 МБ
Кажется, это только немного помогает уменьшить размер файлов, но pdfopt
имеет простой синтаксис и улучшает скорость загрузки и перелистывания страниц в эпоху iPad.
это зависит от того, что занимает пространство…нужно гораздо больше информации. сжатие пространства изображения могло бы помочь, но если вы пытаетесь создать большую файловую кучу, это не сработает. серьезно нужна дополнительная информация.
конвертируйте его в DjVu, вместо этого пытаясь уменьшить до невозможного размера PDF (согласно источнику)
Пожалуйста, смотрите это связано Q&A для ряда интерфейсов GUI для ghostscript, которые должны упростить процесс уменьшения размеров PDF-файлов.
Обратите внимание, что ОП, похоже, случайно отметил неправильный ответ как принятый. В его сопроводительном комментарии выражается благодарность за решение ghostscript, которое решило проблему, но ghostscript появляется не в этом ответе, а в другом.
файл представлял собой изображение в формате jpeg, которое я отсканировал, а затем преобразовал в pdf.