Как знать, сжат ли файл PDF или не, и к (ООН) сжимают его

Можно использовать GLOBIGNORE переменная для сокрытия . и .. каталоги. Это действительно автоматически также устанавливает dotglob опция, таким образом, * теперь соответствия и скрытые и нескрытые файлы. Можно снова вручную сбросить dotglob, Тем не менее, это затем дает поведение, которое Вы хотите.

Посмотрите этот пример:

$ ls -a
.  ..  a  .a  ..a
$ GLOBIGNORE=".:.."
$ shopt -u dotglob
$ echo * # all (only non-hidden)
a
$ echo .* # all (only hidden)
.a ..a
19
26.12.2018, 02:36
4 ответа

короче говоря:

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

strings your.pdf | grep /Filter

К (ООН) сжимают 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 будет сжата уже в некотором роде (и обнаружится при захвате / Фильтра), в то время как некоторая другая часть не будет, таким образом, будет не ДА / НИКАКОЙ ответ на вопрос, сжат ли PDF.
один способ преодолеть это состоял бы в том, чтобы добавить -c опция к grep, который возвращает количество случаев, таким образом, Вы видели относительно, как хорошо это сжато. например, если strings "large.pdf" | grep -c /Filter возвраты менее затем 10 это довольно не сжато.

Другое свойство, касающееся размера в PDFs, были ли они оптимизированы для быстрого доступа, с "оптимизированным" PDFs тем, чтобы быть больше в размере, для заключения в кавычки из Википедии:

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

Можно проверить, оптимизирован ли PDF с помощью pdfinfo your.pdf.

32
27.01.2020, 19:44
  • 1
    Спасибо! (1) Результаты использования qpdf подобны использованию pdftk: со сжатием размер на самом деле стал немного больше (странный), и с распаковывают, размер стал намного больше, почти удвоенным. (2) pdftk и gpdf пытаются выполнить то же самое, с помощью сжатия и распаковать опции? –  StackExchange for All 04.08.2011, 06:18
  • 2
    @Tim: (извините я не был здесь). для (1), поскольку я объяснил, PDF частично сжат уже (по всей вероятности), вот почему сжатие не сохраняет слишком много, (и распаковка делает это намного больше, потому что это распаковывает все сжатые потоки). (2) по всей вероятности qpdf и pdftk сделайте более или менее то же самое относительно сжатия, но qpdf может оптимизировать также (плюс намного больше вещей). спасибо –  Philomath 07.08.2011, 17:10

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

$ pdftk test.pdf output compressed_test.pdf compress
10
27.01.2020, 19:44
  • 1
    Спасибо! я задавался вопросом, как знать, был ли файл PDF уже сжат? –  StackExchange for All 30.07.2011, 16:05
  • 2
    @Tim: pdfinfo file.pdf говорит Вам, если PDF оптимизирован. Однако я не уверен, означает ли это сжатый или нет. –  nico 30.07.2011, 17:58
  • 3
    @uloBasEI: Я попробовал Вашу команду с помощью pdftk для сжатия, но размера, почти не измененного. Если я распаковываю, размер файла дважды. Свойства исходного файла, сжатого файла и несжатых файлов все шоу они не оптимизированы. –  StackExchange for All 30.07.2011, 19:30
  • 4
    @nico:Спасибо! см. мой комментарий выше и мое обновление. Кажется, что сжатие и оптимизация не подразумевают друг друга? –  StackExchange for All 30.07.2011, 19:33
  • 5

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

-1
27.01.2020, 19:44
  • 1
    я думаю вопрос Heidi, что программу проверить свойства с, в особенности с scriptable основанными на командной строке программами. –  Caleb 30.07.2011, 18:54

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

1
27.01.2020, 19:44

Теги

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