Я только что узнал, что PDF-файлы можно сжать, чтобы уменьшить размер их диска.
- Мне было интересно, как узнать, был ли PDF-файл уже сжат?
- Какие приложения / команды можно использовать для сжатия или распаковки PDF-файла?
Моя среда Linux Ubuntu 10.10.
Некоторые попытки не дают удовлетворительных результатов:
Вот результаты попыток
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
Свойства файлов показывают, что все они не оптимизированы.
Результаты конвертации в 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
file
. Он должен показать, сжат ли файл или нет.$file 3.pdf
является3.pdf: PDF document, version 1.4
Ответы:
короче говоря:
Чтобы узнать, сжат ли он уже:
strings your.pdf | grep /Filter
Чтобы (не) сжать PDF, используйте QPDF
объяснение:
Ключевое слово «Filter» внутри pdf-файла является индикатором используемого метода сжатия. Некоторые из них:
(скопировано отсюда ).
Однако, учитывая сложную файловую структуру PDF, большую часть времени некоторая часть (или «поток») PDF будет каким-то образом уже сжата (и будет отображаться при grepping / Filter), тогда как другая часть не будет, поэтому нет ответа ДА / НЕТ на вопрос, является ли PDF сжатым.
Один из способов преодоления этого - добавить
-c
опцию в grep, которая возвращает количество вхождений, чтобы вы могли относительно хорошо видеть, насколько хорошо она сжимается. например, если возвращает меньше 10, это довольно несжатый.strings
"large
.pdf" | grep -c /Filter
Еще одно свойство, касающееся размера в PDF-файлах, заключается в том, были ли они оптимизированы для быстрого доступа, а «оптимизированные» PDF-файлы имеют больший размер, по словам из Википедии :
Вы можете проверить, оптимизирован ли PDF, используя
pdfinfo your.pdf
.источник
qpdf
иpdftk
делать более или менее то же самое в отношении сжатия, но такжеqpdf
может оптимизировать (плюс многое другое).pdftk - это инструмент для выполнения некоторых операций с файлами PDF, таких как сжатие / распаковка:
источник
pdfinfo file.pdf
сообщает, оптимизирован ли PDF . Тем не менее, я не уверен, что это означает сжатый или нет.Я нашел способ сжатия в файле PDF. Откройте PDF с текстовым редактором. Запустите Поиск или Найти -enter CCITT, если не найдено, введите JPEG, затем Flate, затем JBIG2, затем LZW, затем RLE, а затем ZIP.
Звучит хуже, чем есть! Очень легко найти метод сжатия потока данных.
источник
Просто проверьте его свойства; он скажет, если файл сжат или нет.
источник