Как уменьшить размер файла отсканированного PDF-файла?

Найдено!

Графическая программа, которая показывает нужную вам функцию, это

nm-connection-editor

Запустить ее из окна терминала.

Когда это откроется, выберите элемент проводного соединения, нажав кнопку редактирования (cog). В этом меню перейдите на вкладку IPv4 и выберите метод: «общий доступ к другим компьютерам», сохраните все и подключите кабель, если вы этого еще не сделали.

Вот и все

1
задан 4 March 2015 в 17:37

19 ответов

Используйте следующую команду ghostscript:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
-dPDFSETTINGS=/screen более низкое качество, меньший размер. -dPDFSETTINGS=/ebook для лучшего качества, но немного большего формата pdf. -dPDFSETTINGS=/prepress, аналогичный настройке Acrobat Distiller «Prepress Optimized» -dPDFSETTINGS=/printer, выбирает вывод, аналогичный настройке Acrobat Distiller «Оптимизация печати» -dPDFSETTINGS=/default, выбирает вывод, предназначенный для использования в самых разных целях, возможно, за счет больший выходной файл
364
ответ дан 25 May 2018 в 13:27
  • 1
    Можно также сделать скрипт Nautilus для доступа к этой функции для каждого файла. – Sina 7 May 2013 в 20:51
  • 2
    Это должен быть принятый ответ. ghostscript - реализация PDF, XPS и PS для униформ и может делать в основном все, обеспечивая наилучшее качество ... – dom0 2 October 2013 в 22:27
  • 3
    @Sina: На самом деле есть сценарий Nautilus с простым графическим интерфейсом на основе Zenity, который использует эту команду gs со всеми параметрами уровня качества: launchpad.net/compress-pdf – Sadi 25 October 2013 в 16:47
  • 4
    Это правильный ответ на этот вопрос (сжимание pdf-файлов, которые в основном являются растровыми данными). Я обнаружил, что настройка screen для меня была слишком низкого качества, но ebook работал хорошо, сокращая PDF-сканер на 33 Мб до 3,6 Мб и сохраняя его очень удобочитаемым. Другие опции для опции -dPDFSETTINGS перечислены здесь: milan.kupcevic.net/ghostscript-ps-pdf , и было бы неплохо включить их в этот ответ. – naught101 2 December 2014 в 05:13
  • 5
    gs доступные параметры конфигурации: ghostscript.com/doc/current/Ps2pdf.htm – Antonios Hadjigeorgalis 12 December 2014 в 03:41

Мой любимый способ сделать это - преобразовать PDF в ps и обратно. Это не всегда работает, но когда он работает, результаты хороши:

ps2pdf input.pdf output.pdf

Это также напрямую работает с pdf, как это предлагается в комментариях.

106
ответ дан 25 May 2018 в 13:27
  • 1
    Это очень простой и эффективный способ сделать это. Я был удивлен, увидев, насколько этот метод сжал файлы. Спасибо вам! – Gabriel 8 April 2013 в 17:59
  • 2
    Несмотря на то, что этот подход стал моим любимым решением для сжатия pdf-файлов, он разбивает URL-ссылки, которые может иметь документ (что не происходит с подходом @Michael D). Кроме того, удивительность - это все, что я могу придумать для запуска этого фрагмента! (: – Rubens 6 December 2013 в 17:01
  • 3
    @Rubens Ах. Не знал о том, что он нарушает ссылки на URL. Спасибо, что добавил. – don.joey 6 December 2013 в 18:19
  • 4
    Это обходит защиту паролем ... просто скажите, – jojo 7 January 2015 в 00:28
  • 5
    ps2pdf будет принимать pdf-файлы в качестве входных данных, поэтому вы можете сделать это за один шаг: ps2pdf intput.pdf output.pdf – frabjous 1 September 2016 в 22:19

Если у вас есть pdf-файл с отсканированными изображениями, вы можете использовать convert для создания pdf с jpeg-сжатием (этот метод можно использовать для любого PDF-файла, но вы потеряете всю текстовую информацию).

Например:

convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

Настройте плотность (например, 100x100) и качество в соответствии с вашими потребностями.

В зависимости от вашего ввода jpeg плотность может не быть лучший выбор из-за артефактов сжатия. У вас есть выбор между BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE или Zip в качестве альтернативных методов сжатия (некоторые из них допускают только черно-белые изображения). Подробнее см. Здесь.

Я смог добиться больших коэффициентов сжатия для отсканированных / сфотографированных документов (в зависимости от настроек). В зависимости от источника документа вы можете уменьшить глубину цвета (аргумент -depth).

97
ответ дан 25 May 2018 в 13:27
  • 1
    Для отсканированного документа, в котором текст интересует вас, а не изображения, и сохранение глубины не является проблемой, jpeg-сжатие не является хорошей идеей, потому что артефакты имеют тенденцию быть чрезвычайно заметными. Если вы используете pdfimages input.pdf pages для извлечения файлов pbm, вы можете сделать что-то вроде: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Любое OCR будет потеряно, поэтому я обычно делаю pdfsandwich output.pdf, что, судя по всему, уменьшает размер файла. – Brian Z 4 May 2015 в 14:57
  • 2
    @BrianZ уверен, что сжатие jpeg не всегда является лучшим выбором, но для меня это был лучший подход для документов смешанного типа. Я добавил некоторые сведения о других методах сжатия для ответа. – someonr 7 May 2015 в 02:43
  • 3
    Этот метод в конечном счете использует gs за кулисами. – alfC 12 June 2015 в 07:55
  • 4
    Мне пришлось использовать двойную тире для параметров для запуска команды --density --quality --compress vs -density -quality -compress. – Rotareti 10 November 2016 в 22:22
  • 5
    Если qaulity изображения не является наивысшей проблемой (и вы просто хотите, чтобы это прикрепленное письмо электронной почты было достаточно маленьким для отправки), можно добавить -resize 50% тоже, изменить процент в зависимости от того, сколько DPI было использовано во время сканирования – chrki 11 January 2017 в 04:45

Мне нужно было уменьшить размер PDF, который содержал полноцветные проверки документа. Каждая из моих страниц была полноцветным изображением в отношении файла. Это были изображения страниц, содержащих текст и изображения, но они были созданы путем сканирования на изображение.

Я использовал комбинацию ниже приведенной команды ghostscript и одну из другого потока.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE  -dBATCH -sOutputFile=output.pdf input.pdf

Это уменьшило разрешение изображения до 150 точек на дюйм, сократив размер файла пополам. Глядя на документ, практически нет заметной потери качества изображения. Текст по-прежнему прекрасно читается в моем 2012 Nexus7.

28
ответ дан 25 May 2018 в 13:27
  • 1
    +1 для изображений сэмплирования вниз, но сохранение текста в виде векторов. Сделал огромную разницу в стороне, не изменив мой текст. – Jason O'Neil 8 December 2014 в 12:34

Вот сценарий для перезаписи отсканированных PDF-файлов:

#!/bin/sh

gs  -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 filename и вставить его в терминал.

22
ответ дан 25 May 2018 в 13:27
  • 1
    Спасибо, Оли. На данный момент вы почти полностью ответили на все, о чем я просил: -D – Rob Cowell 1 September 2010 в 13:15
  • 2
    Это хороший ответ, но в моем случае, по крайней мере, требуется много времени, чтобы конвертировать несколько большой (& gt; 10 МБ) файл PDF (более минуты). – Gabriel 13 June 2013 в 00:20
  • 3
    Я не уверен, что происходит, но 30 МБ PDF дает файл размером 68 МБ. Вместо того, чтобы уменьшать, он увеличивается. Тот же вывод, если используется непосредственно ps2pdf, как указано в следующем ответе. – Ed Villegas 23 June 2013 в 23:08
  • 4
    @EdVillegas Единственное, что я могу придумать (объяснить такое увеличение), это то, что изображения имеют более низкое разрешение, чем созданные (72dpi). Или каким-то образом встраивание шрифтов всасывает все шрифты. – Oli♦ 25 June 2013 в 12:31

Я обычно использую ps2pdf для этого (более простой синтаксис), что-то вроде этого:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

Я использую следующий скрипт python, чтобы уменьшить размер всех файлов PDF в каталоге в производстве сервера (8.04). Поэтому он должен работать.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
12
ответ дан 25 May 2018 в 13:27
  • 1
    Спасибо за альтернативное решение. Сначала я попробовал Оли, и он дал мне результат, который мне нужен, но я буду держать его в будущем. – Rob Cowell 1 September 2010 в 13:17
  • 2
    -dPDFSETTINGS = / параметр принтера делает 50% изменение размера. ebook делает изменение на 90%. – neouyghur 13 April 2018 в 09:08
Я использую LibreOffice Draw, чтобы открыть pdf. Затем «export as pdf» и установите «качество сжатия JPEG» на 50% и «разрешение изображения» на 150 точек на дюйм

. Это будет хорошим результатом.

12
ответ дан 25 May 2018 в 13:27
  • 1
    Худшее возможное решение проблемы! Это полностью испортило мой файл! – ThatIs 15 January 2018 в 20:31

Я сам столкнулся с этой проблемой. Если вы используете простое сканирование, выберите текстовый режим для сканирования с низким разрешением, и вам не придется беспокоиться о материале командной строки. Просто говорю.

5
ответ дан 25 May 2018 в 13:27
  • 1
    Это единственный ответ в этой теме, который решил мою проблему. Я преуменьшил Simplescan, но для меня это был ответ, вместо того, чтобы сражаться с Xsane в бесконечной агонии. – versvs 31 August 2015 в 19:03

Лучший для меня был

convert -compress Zip -density 150x150 input.pdf output.pdf

Другие способы:

#### gs
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE

### pdf2ps && ps2pdf
pdf2ps input.pdf output.ps && ps2pdf output.ps output.pdf

### Webservice
http://compress.smallpdf.com/de

приветствует

5
ответ дан 25 May 2018 в 13:27
  • 1
    хорошее резюме спасибо – Gery 29 January 2018 в 00:10
  • 2
    Отличное решение. Легко запомнить, и он принес мой pdf от 32 до 3,5 МБ без разумной потери в удобочитаемости. – Immanuel Weihnachten 17 March 2018 в 13:57

Поскольку эта ссылка была первой для меня, когда я искал в Google, я думал, что добавлю еще одну возможность. Ни одно из вышеперечисленных решений не работало для меня на pdf, экспортированном из Inkscape (15 мб), но я, наконец, смог сократить его до 1 мб, открыв его в GIMP и снова экспортируя в формате pdf.

Другой вариант, который пришел близко (но текст был немного нечетким), был утилитой преобразования ImageMagick:

convert -compress Zip input.pdf output.pdf
3
ответ дан 25 May 2018 в 13:27
  • 1
    Я предполагаю, что это то, что вы имели в виду под «небольшим нечетким», но просто для того, чтобы уточнить, convert -compress Zip, казалось, растрировал все векторы. – Sparhawk 22 February 2015 в 07:39

В конце я написал свой собственный скрипт bash для его решения, он использует mogrify, convert и gs, чтобы извлечь pdf-страницы в виде png, изменить их размер, преобразовать в 1-бит bmp и затем перестроить их как pdf. Уменьшение размера файла может превышать 90%. Доступно по адресу http://www.timedicer.co.uk/programs/help/pdf-compress.sh.php.

3
ответ дан 25 May 2018 в 13:27

Управление качеством сжатия:

#!/bin/sh
INPUT=$1; shift
OUTPUT=$1; shift
GS_BIN=/usr/bin/gs
QFACTOR="0.40"

# Image Compression Quality
#
# Quality HSamples VSamples QFactor
# Minimum [2 1 1 2] [2 1 1 2] 2.40
# Low     [2 1 1 2] [2 1 1 2] 1.30
# Medium  [2 1 1 2] [2 1 1 2] 0.76
# High    [1 1 1 1] [1 1 1 1] 0.40
# Maximum [1 1 1 1] [1 1 1 1] 0.15 

${GS_BIN} -dBATCH -dSAFER -DNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=${OUTPUT} -c "<< /ColorImageDict << /QFactor ${QFACTOR} /Blend 1 /HSample [1 1 1 1] /VSample [1 1 1 1] >> >> setdistillerparams" -f ${INPUT}
2
ответ дан 25 May 2018 в 13:27
  • 1
    ... так что оба INPUT и OUTPUT являются тем же самым аргументом? Возможно, вы захотите добавить рекомендации по использованию. – mikewhatever 2 April 2016 в 14:46
  • 2
    Обратите внимание на shift. Первый параметр - это входной файл, второй - выходной файл, а остальные параметры будут переданы в gs как есть. – Mikko Rantalainen 13 May 2016 в 15:53
  • 3
    Я думаю, вы хотите / HSample s и / VSample s , а не / HSample и / VSample. См. ps2pdf docs или справочное руководство по языку PostScript. Также, возможно, стоит отметить, что допустимый диапазон QFactor составляет от 0 до 1000000, а более низкие значения дают более высокое качество. – Pont 2 August 2017 в 11:31

Если преобразование в djvu также было бы нормально, и если бы не были задействованы цвета, вы могли бы попробовать следующее:

Преобразовать файлы pdf в jpg с помощью pdfimages -j

Если вы вместо этого вы должны сделать промежуточный шаг:

for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done

Команда convert из пакета imagemagick.

Затем используйте scantailor для создания tif из него.

На последнем шаге вы переходите к сценаристам из директории (где расположены файлы tif) и применяете scantailor к этому каталогу.

Это должно значительно уменьшить размер файла без потери качества текста. Если вы хотите более тонкий контроль над ocr-backend, вы можете попробовать djvubind --no-ocr и использовать ocrodjvu для добавления ocr-слоя впоследствии.

Если у вас есть цвет в документе, все становится немного сложнее. Вместо djvubind вы можете использовать didjvu и в scantailor вы должны перейти в смешанный режим и выбрать иногда цветные изображения вручную.

1
ответ дан 25 May 2018 в 13:27

загружать изображение или даже файл PDF в файл inkscape.

Из inkscape: Сохранить в векторном формате (как родной .svg).

Импортировать векторные файлы в scribus, отредактировать макет и экспортировать / сохранить как .pdf оттуда

1
ответ дан 25 May 2018 в 13:27

Я столкнулся с той же проблемой и был рад найти эту тему. В частности, у меня был pdf-файл, полученный от отсканированных изображений, и ему необходимо уменьшить его размер байта в 6 раз.

К сожалению, ни одно из вышеперечисленных решений не срабатывало :( Тогда я понял, что где-то в сканере- > jpeg-> pdf размер страницы был раздутым в 4 раза. Документы, которые я просматривал, были все размером Letter, но в формате pdf был размер

identify -verbose doc_orig.pdf | grep "Print size"
 Print size: 35.4167x48.7222

. Я получил желаемый наконец, с помощью команды «convert», которая сделала как изменение размера, так и шаги сжатия в одном:

convert -density 135x135 -quality 70 -compress jpeg -resize 22.588% doc_orig.pdf doc_lowres.pdf

Обратите внимание, что doc_orig имел плотность 72x72 dpi.

1
ответ дан 25 May 2018 в 13:27

Векторизация всех шрифтов поможет. Не вставляйте шрифты в файл.

Используйте небольшое разрешение изображения: большую часть времени вам действительно не нужны HD-изображения. Будьте осторожны с программным обеспечением изображения, таким как Gimp, он может сделать очень большой сжатый файл (остерегайтесь, как вы его сжимаете). Мне не нравятся проприетарные программы, но некоторые инструменты сжатия Adobe Photoshop лучше, чем Gimp.

Подробнее: вам нужно поместить изображение в файл PDF?

Это очень просто, но больше, чем разрешение изображения, вы можете просто изменить размер документа ...

@Lord of Time прав: переход от 72Mo к 500Ko будет тяжелым без что-то радикальное.

0
ответ дан 25 May 2018 в 13:27

Супер простой инструмент сжатия PDF: страница GitHub.

Установка на Ubuntu:

sudo add-apt-repository ppa:jfswitz/released

sudo apt-get update

sudo apt-get install pdf-compressor

Используется ghostscript.

0
ответ дан 25 May 2018 в 13:27

Недавно я обнаружил и настоятельно рекомендую pdfsizeopt.

Он намного эффективнее любого из предыдущих программ CLI и GUI, которые я пробовал (включая convert, gs, pdftk и т. д.) - хотя возможно медленнее с pngout

Я рекомендую универсальную установку Unix:

Устанавливать все (без каких-либо проблем с пикселами / ухудшенными изображениями, без потери закладок и т. д.). требуемые зависимости: Ghostscript jbig2 pngout png22pnm sam2p Загрузите и установите исполняемый файл:
curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
cp pdfsizeopt.single /usr/local/bin/pdfsizeopt

Использование:

pdfsizeopt original.pdf [compressed.pdf]
0
ответ дан 25 May 2018 в 13:27

Я использовал команды ниже, но он существенно не сжимал мой файл PDF. Некоторое время часть части была почернела после сжатия.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE "ps2pdf -dPDFSETTINGS=/ebook %s %s" % (input_file_path, out_file_path)

После слишком большого блуждания по сети я просто не мог найти нужную библиотеку сжатия. Я наткнулся на pdfcompressor.com. Это просто потрясающий сайт. Он сжимает pdf на 95% (15 Мбайт файлов). Поэтому я использовал селен и Tor для автоматизации сжатия. Оформить заказ на репозиторий Github. [GITHUB] (https://github.com/gugli28/PdfCompressor)

-2
ответ дан 25 May 2018 в 13:27

Другие вопросы по тегам:

Похожие вопросы: