2016-11-14 3 views
0

Я столкнулся с странной ситуацией с определенной группой PDF-файлов и не уверен, с чего начать. Если я разорву файл 25M, 600 pg, выход будет 25M на один разрытый файл. Если я сделаю pdftk input.pdf cat 1-100 output out.pdf размер также 25M (25292kb против 25524kb для оригинала). Выполнение диапазона страниц 1-5 приводит к размеру файла 25040 КБ.PDFTK Вывод того же размера, что и вход Независимо от Cat'd Количество страниц

Есть ли флаг, который я могу добавить в pdftk, чтобы справиться с этой ситуацией? Ghostscript может взять диапазон страниц из этого pdf и сделать соответствующий размер PDF, но gs, похоже, не обрабатывает пакет, а также требует наличия каждого шрифта.

ответ

2

Возможно, вы делаете следующее предположение о PDF: если у вас есть PDF с размером файла 3000 КБ и 10 страниц, тогда разделение этого PDF-файла приведет к 30 файлам с размером файла 300 КБ.

Это предположение неверно. Представьте KB документ 3000 с десятью страниц и следующими объектами:

  • четыре шрифтом подмножеств, используемых на каждой странице, каждые около 50 KB
  • десяти изображений, фигурирующих на одной странице, каждые около 200 КБ (одно изображения на страницу)
  • четыре изображений, которые фигурируют на каждой странице, каждые около 50 КБ
  • десяти страниц с содержанием потоками около 25 Кбайтов каждого
  • около 350 Кб для таких объектов, как каталог, информация словарь, страница дерево, таблица перекрестных ссылок и т. д.

На одной странице будет нужно по крайней мере: - четыре подмножества шрифта: 4 раз 50 KB - единственное изображение: 1 раз 200 КБ - четыре изображения: 4 раз 50 KB - один поток контента : 1 раз 50 КБ - немного уменьшенная таблица перекрестных ссылок, немного уменьшенное дерево страниц, почти идентичный каталог, словарь информации того же размера, ... 200 КБ

Вместе это 850 КБ. Это означает, что вы получите 8500 КБ (10 раз 850 КБ), если вы разделите 10-страничный PDF-документ на 3000 КБ на 10 отдельных страниц.

Я полагаю, что общие ресурсы (ресурсы, которые используются на каждой странице, например, шрифты) огромны в вашем PDF-файле. Например. если кто-то использовал изображение с высоким разрешением в качестве фона каждой страницы, которая занимает около 25 миллионов, то каждому из ваших 600 страниц понадобится 25M.

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

+0

Спасибо, это очень проницательно, и у меня возникли проблемы с поиском такого типа информации. Любое предложение о том, как анализировать и, возможно, отказаться от этой информации? Ghostscript, по-видимому, способен отображать информацию о карте и создавать небольшие отдельные файлы, которые не намного больше в совокупности, чем исходный отдельный файл. pdf2ps, а затем назад тоже, но ресурс голоден. – RyanH

+0

Я думаю, что gs «печатает» PDF и тем самым уменьшает разрешение и удаляет такие вещи, как деревья структуры, аннотации и т. Д. Также обратите внимание, что PdfTk устарел: он не поддерживает более продвинутое сжатие, введенное в PDF 1.5. Не видя файл, трудно комментировать реальную проблему. –

 Смежные вопросы

  • Нет связанных вопросов^_^