Как узнать, сжат ли файл PDF или нет, и (un) сжать его

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

  1. Мне было интересно, как узнать, сжат ли файл PDF?
  2. Какие приложения / команды могут использоваться для сжатия или распаковки файла pdf?

Моя среда – Linux Ubuntu 10.10.


Некоторые попытки не дают удовлетворительных результатов:

  1. Вот результаты попыток pdftk:

    $ pdftk 3.pdf output 5.pdf uncompress $ pdftk 3.pdf output 3comp.pdf compress $ ls -l 3.pdf 3comp.pdf 5.pdf -rwxrwx--- 1 root plugdev 8652269 2011-07-30 12:27 3comp.pdf -rwxrwx--- 1 root plugdev 8652319 2011-07-29 22:15 3.pdf -rwxrwx--- 1 root plugdev 16829828 2011-07-30 12:27 5.pdf 

    Свойства файлов показывают, что все они не оптимизированы.

  2. Результаты преобразования в ps, а затем обратно в pdf:

     $ pdf2ps 3.pdf 3.ps $ ps2pdf 3.ps 3c.pdf $ ls -l 3.pdf 3.ps 3c.pdf -rwxrwx--- 1 root plugdev 8808946 2011-07-30 13:14 3c.pdf -rwxrwx--- 1 root plugdev 8652319 2011-07-29 22:15 3.pdf -rwxrwx--- 1 root plugdev 122375966 2011-07-30 13:14 3.ps 

4 Solutions collect form web for “Как узнать, сжат ли файл PDF или нет, и (un) сжать его”

вкратце:

Чтобы узнать, сжата ли она уже:

strings your.pdf | grep /Filter

Чтобы (un) сжать PDF, используйте QPDF

 qpdf --stream-data=compress your.pdf compressed.pdf qpdf --stream-data=uncompress compressed.pdf uncompressed.pdf 

объяснение:

Ключевое слово «Фильтр» внутри файла pdf является индикатором используемого метода сжатия. Некоторые из них:

CCITT G3 / G4 – используется для монохромных изображений
JPEG – алгоритм с потерями, который используется для изображений
JPEG2000 – более современная альтернатива JPEG, которая также используется для сжатия изображений
Flate – используется для сжатия текста, а также изображений
JBIG2 – альтернатива сжатию CCITT для монохромных изображений
LZW – используется для сжатия текста, а также изображений, но заменяется на Flate
RLE – используется для монохромных изображений
ZIP – используется для оттенков серого или цветных изображений

(скопировано отсюда ).

Однако, учитывая сложную файловую структуру PDF, большую часть времени часть (или «поток») PDF будет сжиматься уже каким-то образом (и будет отображаться при grepping / Filter), в то время как какая-то другая часть не будет, поэтому нет ответа YES / NO на вопрос, сжат ли PDF.
одним из способов преодоления этого было бы добавить параметр -c в grep, который возвращает количество вхождений, поэтому вы можете видеть, насколько хорошо он сжат. например, если strings "large .pdf" | grep -c /Filter .pdf" | grep -c /Filter возвращает менее 10, он довольно не сжат.

Другое свойство, относящееся к размеру в PDF-файлах, заключается в том, были ли они оптимизированы для быстрого доступа, причем «оптимизированные» PDF-файлы больше по размеру, чтобы процитировать из википедии :

В файлы PDF есть два макета – нелинейный (не «оптимизированный») и линейный («оптимизированный»). Нелинейные файлы PDF потребляют меньше места на диске, чем их линейные копии, хотя они медленнее, потому что части данных, необходимые для сборки страниц документа, разбросаны по всему PDF-файлу. Линейные файлы PDF (также называемые «оптимизированными» или «оптимизированными в Интернете» файлами PDF) создаются таким образом, чтобы их можно было читать в плагине веб-браузера, не дожидаясь загрузки всего файла, поскольку они записываются на диск в линейный (как в порядке страницы). PDF-файлы могут быть оптимизированы с использованием программного обеспечения Adobe Acrobat или QPDF.

Вы можете проверить, оптимизирован ли PDF, используя pdfinfo your.pdf .

pdftk – это инструмент для выполнения некоторых операций с файлами PDF, такими как сжатие / распаковка:

 $ pdftk test.pdf output compressed_test.pdf compress 

Просто проверьте его свойства; он скажет, сжат ли файл или нет.

Я нашел метод сжатия в файле pdf. Откройте PDF с помощью текстового редактора. Запустите поисковый или Find -enter CCITT, если не найден, введите JPEG, затем Flate, затем JBIG2, затем LZW, затем RLE, а затем ZIP.
Звучит хуже, чем есть! Очень легко найти способ сжатия потока данных.

Надеюсь это поможет! Спасибо за сообщение …

  • Как заставить ghostscript не стирать метаданные PDF
  • Реализация инструмента String -> PDF Stamp
  • Есть ли программа просмотра PDF, способная открывать несколько документов в одном окне?
  • Извлечение четных и нечетных страниц PDF в два отдельных PDF-файла
  • Как вы выводите информационную страницу в pdf?
  • Печать PDF без встроенного шрифта TrueType (cups / lpr)
  • Каков программный пакет для создания PDF-документов на ОС Debian и OpenBSD?
  • Как сохранить копию защищенной формы PDF в Evince?
  • Как конвертировать TXT в PDF?
  • конвертировать PDF в изображение
  • Как создать пустой PDF-файл из командной строки?
  • Linux и Unix - лучшая ОС в мире.