Как я могу уменьшить размер файла отсканированного 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

Настройте параметры в соответствии с вашими потребностями

  • -плотность: плотность пикселей в dpi (например, 100x100). Более высокая плотность пикселей увеличивает качество и размер
  • - качество: степень сжатия. Для jpg это значение составляет от 1 до 100 при 100 наилучшем качестве, но наименьшем сжатии
  • - сжимать: алгоритм сжатия. jpeg компрессия возможно, это не лучший выбор из-за артефактов сжатия. У вас есть выбор между BZip, Fax, Group4, JPEG, JPEG2000, без потерь, LZW, RLE или Zip в качестве альтернативных методов сжатия (некоторые разрешают только черно-белые изображения).

Мне удалось добиться отличных коэффициентов сжатия для отсканированных / сфотографированных документов (в зависимости от настроек). В зависимости от источника документа вы можете уменьшить глубину цвета (-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 и загрузил его в терминал.

  1. Я использую Розыгрыш LibreOffice чтобы открыть PDF-файл.
  2. Затем я "экспортирую в формате pdf"
  3. И установите "качество сжатия jpeg" на 50%, а "разрешение изображения" на 150 точек на дюйм.

Это даст хороший результат.

Я обычно использую 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:

  1. Установите все необходимые зависимости:
  1. Загрузите и установите исполняемый файл:

     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. :slight_smile:

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

конвертируйте его в DjVu, вместо этого пытаясь уменьшить до невозможного размера PDF (согласно источнику)

Пожалуйста, смотрите это связано Q&A для ряда интерфейсов GUI для ghostscript, которые должны упростить процесс уменьшения размеров PDF-файлов.

Обратите внимание, что ОП, похоже, случайно отметил неправильный ответ как принятый. В его сопроводительном комментарии выражается благодарность за решение ghostscript, которое решило проблему, но ghostscript появляется не в этом ответе, а в другом.

файл представлял собой изображение в формате jpeg, которое я отсканировал, а затем преобразовал в pdf.